青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

分享知識(shí)

與大家一起分享知識(shí)

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  19 Posts :: 3 Stories :: 45 Comments :: 0 Trackbacks

D.3 Standard Error Functions

We define our own set of error functions that are used throughout the text to
?handle error conditions. The reason for using our own error functions is to
let us write our error handling with a single line of C code, as in

										
if (error condition)
    err_sys (printf format with any number of arguments);
										

instead of

										
if (error condition) {
    char buff [2002];
    snprintf(buff, sizeof (buff), printf format 
??? with any number of arguments)
; perror(buff); exit (1); }
										

Our error functions use the variable-length argument list facility from ANSI C.
See Section 7.3 of [Kernighan and Ritchie 1988] for additional details.

Figure D.3 lists the differences between the various error functions.
If the global integer daemon_proc is nonzero, the message is passed to
syslog with the indicated level; otherwise, the error is output to standard error.
Figure D.3. Summary of our standard error functions.
graphics/xdfig03.gif

Figure D.4 shows the first five functions from Figure D.3.

Figure D.4 Our standard error functions.

lib/error.c

 1 #include    "unp.h"
 2 #include    <stdarg.h>          /* ANSI C header file */
 3 #include    <syslog.h>          /* for syslog() */

 4 int     daemon_proc;            /* set nonzero by daemon_init() */

 5 static void err_doit(int, int, const char *, va_list);

 6 /* Nonfatal error related to system call
 7  * Print message and return */

 8 void
 9 err_ret(const char *fmt, ...)
10 {
11     va_list ap;

12     va_start(ap, fmt);
13     err_doit(1, LOG_INFO, fmt, ap);
14     va_end(ap);
15     return;
16 }

17 /* Fatal error related to system call
18  * Print message and terminate */

19 void
20 err_sys(const char *fmt, ...)
21 {
22     va_list ap;

23     va_start(ap, fmt);
24     err_doit(1, LOG_ERR, fmt, ap);
25     va_end(ap);
26     exit(1);
27 }

28 /* Fatal error related to system call
29  * Print message, dump core, and terminate */

30 void
31 err_dump(const char *fmt, ...)
32 {
33     va_list ap;

34     va_start(ap, fmt);
35     err_doit(1, LOG_ERR, fmt, ap);
36     va_end(ap);
37     abort();                    /* dump core and terminate */
38     exit(1);                    /* shouldn't get here */
39 }

40 /* Nonfatal error unrelated to system call
41  * Print message and return */

42 void
43 err_msg(const char *fmt, ...)
44 {
45     va_list ap;

46     va_start(ap, fmt);
47     err_doit(0, LOG_INFO, fmt, ap);
48     va_end(ap);
49     return;
50 }

51 /* Fatal error unrelated to system call
52  * Print message and terminate */

53 void
54 err_quit(const char *fmt, ...)
55 {
56     va_list ap;

57     va_start(ap, fmt);
58     err_doit(0, LOG_ERR, fmt, ap);

59     va_end(ap);
60     exit(1);
61 }

62 /* Print message and return to caller
63  * Caller specifies "errnoflag" and "level" */

64 static void
65 err_doit(int errnoflag, int level, const char *fmt, va_list ap)
66 {
67     int     errno_save, n;
68     char    buf[MAXLINE + 1];

69     errno_save = errno;         /* value caller might want printed */
70 #ifdef HAVE_VSNPRINTF
71     vsnprintf(buf, MAXLINE, fmt, ap);   * safe */
72 #else
73     vsprintf(buf, fmt, ap);     /* not safe */
74 #endif
75     n = strlen(buf);
76     if (errnoflag)
77         snprintf(buf + n, MAXLINE - n, ": %s", strerror(errno_save));
78     strcat(buf, "\n");

79     if (daemon_proc) {
80         syslog(level, buf);
81     } else {
82         fflush(stdout);         /* in case stdout and stderr are the same */
83         fputs(buf, stderr);
84         fflush(stderr);
85     }
86     return;
87 }
posted on 2006-05-09 21:39 史傳紅 閱讀(1020) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 鏈接目錄
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            伊人久久亚洲热| 欧美精品二区| 亚洲黄网站黄| 欧美激情a∨在线视频播放| 久久免费99精品久久久久久| 欧美一区二区三区四区在线观看地址 | 欧美日韩精品二区第二页| 欧美精品导航| 国产精品视频自拍| 国语自产精品视频在线看抢先版结局 | 亚洲欧美在线另类| 欧美一区激情视频在线观看| 久久久久在线观看| 亚洲国产美国国产综合一区二区| 欧美激情亚洲自拍| 一本色道久久综合亚洲精品婷婷 | 欧美色图五月天| 欧美精品一区二区三区很污很色的 | 国产精品久久久| 国产亚洲成年网址在线观看| 在线观看一区二区精品视频| 99在线热播精品免费99热| 亚洲亚洲精品在线观看| 久久嫩草精品久久久精品| 亚洲国产一区二区三区青草影视 | 欧美精品在线免费播放| 国产精品日韩一区二区三区| 在线观看中文字幕亚洲| 亚洲女人天堂成人av在线| 狂野欧美激情性xxxx| 9国产精品视频| 久久青草欧美一区二区三区| 欧美午夜美女看片| 黄页网站一区| 亚洲欧美三级伦理| 欧美高清影院| 欧美一区二区视频免费观看 | 国内免费精品永久在线视频| 一个人看的www久久| 美女图片一区二区| 亚洲在线黄色| 欧美日韩免费观看一区二区三区 | 在线不卡中文字幕| 亚洲欧美国产制服动漫| 亚洲高清一二三区| 久久激情网站| 国产精品一区二区三区四区五区 | 麻豆91精品91久久久的内涵| 亚洲综合二区| 国产精品久久久久久久久久久久久久| 亚洲欧洲精品成人久久奇米网| 久久中文久久字幕| 久久av一区二区三区漫画| 国产欧美一区二区在线观看| 亚洲中字黄色| 亚洲视频中文| 国产精品久久久久久影院8一贰佰| 99国产精品99久久久久久| 亚洲国产精品一区二区尤物区| 久久久久久香蕉网| 伊人婷婷久久| 欧美 日韩 国产在线| 久久精品官网| 午夜激情综合网| 日韩视频在线播放| 欧美成人亚洲成人| 亚洲精品在线观看视频| 亚洲国产福利在线| 欧美精品电影在线| 亚洲午夜高清视频| 亚洲一区二区日本| 国产欧美日韩亚洲一区二区三区| 亚洲综合国产激情另类一区| 亚洲性视频h| 国产视频观看一区| 老司机精品导航| 你懂的视频一区二区| 亚洲免费播放| 亚洲永久在线| 精品电影在线观看| 亚洲国产精品123| 欧美日韩精品免费看| 亚洲女同同性videoxma| 欧美一级免费视频| 亚洲电影下载| 一本大道久久a久久精品综合| 国产女人精品视频| 欧美成人精品一区二区| 欧美日本亚洲韩国国产| 先锋影音国产一区| 久久在线播放| 亚洲一区二区视频| 久久精品免费播放| 亚洲精品久久7777| 亚洲你懂的在线视频| 亚洲国产精品久久人人爱蜜臀 | 免费亚洲一区| 欧美色精品在线视频| 久久久久国产精品一区三寸| 免费h精品视频在线播放| 亚洲精品日韩在线| 亚洲自拍偷拍福利| 亚洲麻豆国产自偷在线| 午夜视频在线观看一区| 日韩系列欧美系列| 久久精品国产999大香线蕉| 中日韩视频在线观看| 久久久人成影片一区二区三区| 一区二区三区成人| 久久免费精品视频| 欧美一区二视频| 欧美三级特黄| 亚洲高清网站| 在线观看视频亚洲| 亚洲在线视频免费观看| 日韩视频一区二区在线观看 | 久久精品亚洲一区二区三区浴池| 99精品热视频只有精品10| 欧美怡红院视频一区二区三区| 一本色道久久88综合日韩精品 | 亚洲国产成人高清精品| 国产日韩欧美二区| 夜夜精品视频一区二区| 亚洲欧洲精品一区二区精品久久久| 亚洲亚洲精品在线观看 | 亚洲一区二区在线视频| 亚洲麻豆视频| 欧美国产一区二区| 欧美搞黄网站| 精品不卡在线| 久久se精品一区二区| 久久精品国产v日韩v亚洲| 国产精品美女主播| 亚洲午夜精品视频| 亚洲影院一区| 国产精品久久久久久久午夜| 99热免费精品| 亚洲一区二区精品在线| 欧美日韩另类一区| 一区二区三区精密机械公司 | 欧美国产视频日韩| 亚洲福利视频网| 亚洲国产日韩欧美一区二区三区| 久久国产精品久久久久久电车| 久久九九免费| 在线观看91精品国产入口| 久久久人成影片一区二区三区| 欧美成ee人免费视频| 亚洲国产日韩综合一区| 欧美激情乱人伦| 日韩亚洲在线观看| 欧美一区二区精品| 精品1区2区3区4区| 免费成人黄色av| 亚洲精品欧美日韩| 亚洲欧美另类在线观看| 国产一区二区欧美| 免费毛片一区二区三区久久久| 亚洲人成艺术| 亚洲女女做受ⅹxx高潮| 影音先锋一区| 欧美日韩国产系列| 亚洲欧美在线免费| 欧美大片一区| 亚洲一区精品在线| 国模精品娜娜一二三区| 鲁大师成人一区二区三区| 亚洲美女中文字幕| 久久成人免费| 最新国产精品拍自在线播放| 欧美午夜精品久久久久免费视| 欧美一区二区视频在线| 农夫在线精品视频免费观看| 一本久久精品一区二区| 国产情侣一区| 欧美经典一区二区三区| 亚洲欧美中文日韩在线| 欧美激情一区二区| 欧美一区二区三区四区夜夜大片 | 91久久在线| 亚洲国产精品一区二区尤物区| 欧美激情亚洲| 日韩午夜一区| 国产一区二区三区在线观看视频 | 麻豆国产精品777777在线| 一区二区三区视频在线看| 欧美风情在线| 亚洲欧洲日本一区二区三区| 99视频日韩| 国产美女在线精品免费观看| 日韩亚洲国产欧美| 久久狠狠婷婷| 9色精品在线| 国产一区二区黄色| 欧美久久久久久久| 亚洲欧美在线网| 亚洲国产你懂的| 午夜视频在线观看一区| 国产亚洲欧美aaaa| 欧美电影专区|