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

分享知識(shí)

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

C++博客 首頁(yè) 新隨筆 聯(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 史傳紅 閱讀(1025) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 鏈接目錄

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲一区二区三区高清 | 亚洲一区在线免费| 日韩视频中文字幕| 99精品国产高清一区二区| 亚洲三级视频| 亚洲婷婷在线| 久久精品亚洲一区二区| 久久天天综合| 亚洲高清三级视频| 亚洲电影在线播放| 一本色道久久综合亚洲精品不卡| 一区二区激情视频| 欧美在线一区二区| 欧美成人午夜免费视在线看片| 欧美大片18| 国产美女精品| 亚洲国产精品一区| 亚洲欧美日本国产专区一区| 久久久夜夜夜| aa级大片欧美| 久久夜色精品一区| 欧美性猛交xxxx免费看久久久 | 亚洲宅男天堂在线观看无病毒| 午夜视频在线观看一区二区| 久久久夜夜夜| 亚洲少妇自拍| 欧美电影美腿模特1979在线看| 欧美午夜国产| 最近中文字幕日韩精品 | 亚洲激情在线观看| 亚洲欧美日韩人成在线播放| 欧美成人国产一区二区| 一区二区三区导航| 久久噜噜噜精品国产亚洲综合| 欧美日韩国产首页在线观看| 韩国成人精品a∨在线观看| 亚洲一区二区三区精品动漫| 免费不卡亚洲欧美| 午夜精品久久久久99热蜜桃导演| 你懂的视频一区二区| 国产一区二区三区最好精华液| 中日韩午夜理伦电影免费| 欧美成人精品一区二区三区| 午夜国产一区| 欧美午夜大胆人体| 日韩午夜免费视频| 久久亚洲免费| 亚洲第一毛片| 欧美gay视频| 免费不卡视频| 在线视频精品一区| 亚洲美女91| 国产日韩欧美在线观看| 亚洲欧美精品在线| 久久久99爱| 一本色道久久| 久久99在线观看| 日韩午夜av电影| 篠田优中文在线播放第一区| 国产区亚洲区欧美区| 久久久久看片| 国产精品初高中精品久久| 久久五月婷婷丁香社区| 欧美成人一区二区在线| 午夜日韩在线观看| 老鸭窝亚洲一区二区三区| 亚洲精选视频免费看| 浪潮色综合久久天堂| 国产精品毛片a∨一区二区三区|国 | 久久国产精品久久精品国产| 欧美一区成人| 久久久精品动漫| 欧美精品一区二区蜜臀亚洲| 91久久黄色| 麻豆久久精品| 亚洲一区美女视频在线观看免费| 久久久噜噜噜久久中文字幕色伊伊| 日韩视频免费观看高清在线视频| 欧美精品在线一区二区三区| 日韩一区二区精品| 亚洲黄色小视频| 欧美激情第二页| 欧美久久久久中文字幕| 欧美专区日韩视频| 国产精品羞羞答答| 午夜在线播放视频欧美| 欧美一区二区三区精品| 国产日韩精品视频一区二区三区| 99这里只有久久精品视频| 亚洲精品一区二区三区福利| 欧美激情成人在线| 亚洲精品午夜精品| 99成人在线| 亚洲一区二区在| 欧美日韩一区二区在线视频| 好吊色欧美一区二区三区视频| 久久精品人人做人人综合| 国产精品区一区二区三| 久久久久久伊人| 日韩系列欧美系列| 久久精品国产一区二区三区免费看| 激情久久婷婷| 国产精品三上| 欧美人在线观看| 久久综合网络一区二区| 亚洲色图在线视频| 亚洲国产一区二区视频 | 欧美日韩国产黄| 国产精品午夜电影| 六月婷婷久久| 亚洲先锋成人| 一区二区三区导航| 日韩视频在线播放| 亚洲精品免费看| 亚洲大片av| 亚洲人成在线观看一区二区| 久久免费黄色| 久久人人爽人人爽爽久久| 亚洲欧美日韩一区二区三区在线| 亚洲丰满在线| 亚洲人成毛片在线播放女女| 亚洲第一免费播放区| 国产一区二区成人| 国产视频在线一区二区| 国产日韩欧美日韩大片| 国产精品网站一区| 国产嫩草影院久久久久| 国产欧美va欧美va香蕉在| 国产嫩草影院久久久久| 亚洲一区精品在线| 欧美一区二区免费| 久久影院午夜片一区| 欧美成人日韩| 国产精品丝袜xxxxxxx| 精品不卡视频| 亚洲一区二区在线看| 久久人体大胆视频| 日韩视频免费观看高清在线视频| 亚洲天堂网站在线观看视频| 久久精品国产精品亚洲| 免费不卡亚洲欧美| 国产日韩欧美中文| 亚洲天天影视| 亚洲日本va在线观看| 亚洲嫩草精品久久| 欧美日韩免费看| 亚洲国产一区视频| 久久精品免费| 新狼窝色av性久久久久久| 欧美午夜在线视频| 亚洲欧美高清| 亚洲视频在线一区| 欧美午夜精品久久久久免费视 | 久久夜色撩人精品| 亚洲中午字幕| 国产午夜精品理论片a级大结局| 一本色道久久综合亚洲精品不卡| 久久精品中文字幕一区| 欧美在线网站| 亚洲国产精品美女| 亚洲高清一区二| 欧美日韩成人在线观看| 一区二区三区你懂的| 亚洲伊人色欲综合网| 国产欧美日本| 老司机一区二区| 欧美精品日韩精品| 亚洲欧美日韩一区| 久久久久久成人| 91久久精品网| 亚洲一区在线直播| 在线观看亚洲视频| 亚洲第一搞黄网站| 欧美激情视频一区二区三区在线播放 | 久久精品国产清高在天天线| 亚洲欧美国产视频| 影音先锋一区| 日韩视频―中文字幕| 国内精品模特av私拍在线观看| 久久亚洲精品欧美| 欧美精品日本| 欧美国产丝袜视频| 国产欧美日韩三级| 亚洲精品久久久久久一区二区| 国产精品一区二区三区四区 | 亚洲国产另类久久精品| 亚洲午夜三级在线| 亚洲精品偷拍| 久久精品亚洲一区| 亚洲欧美日本在线| 欧美精品在线免费观看| 免费欧美在线视频| 亚洲电影毛片| 欧美国产日韩在线| 亚洲国产精品一区二区第一页| 在线观看一区视频| 欧美成人乱码一区二区三区| 欧美成人免费网| 亚洲精品日韩综合观看成人91| 免费在线日韩av|