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

分享知識

與大家一起分享知識

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 史傳紅 閱讀(1027) 評論(0)  編輯 收藏 引用 所屬分類: 鏈接目錄

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   IT新聞   BlogJava   博問   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精品视频一区二区三区| 欧美日韩福利视频| 午夜精品久久久久久99热软件 | 黑人一区二区| 久久综合婷婷| 欧美大学生性色视频| 亚洲福利电影| 亚洲高清电影| 欧美三区在线观看| 亚洲一二三区在线| 亚洲制服av| 有坂深雪在线一区| 亚洲激情另类| 国产精品一区在线观看| 久久av一区二区三区亚洲| 久久精品国内一区二区三区| 在线精品一区| 亚洲最新合集| 国产综合色一区二区三区| 欧美高清视频一二三区| 欧美日韩在线视频一区二区| 香蕉久久国产| 美女网站久久| 欧美一区二区视频免费观看| 欧美一区二区三区另类| 亚洲欧洲三级| 午夜精彩国产免费不卡不顿大片| 伊人久久成人| 亚洲巨乳在线| 国产欧美一区在线| 欧美激情在线免费观看| 国产精品美女诱惑| 欧美激情视频网站| 欧美女人交a| 蜜桃av噜噜一区二区三区| 欧美日韩国产美| 欧美www视频在线观看| 国产精品视区| 亚洲精品资源美女情侣酒店| 在线电影院国产精品| 亚洲一区二区视频| 亚洲美女av在线播放| 久久久精彩视频| 先锋影音一区二区三区| 欧美日韩系列| 亚洲缚视频在线观看| 在线观看视频一区二区欧美日韩| 亚洲欧美精品在线| 亚洲在线日韩| 欧美网站在线观看| 亚洲精品久久久久久久久| 激情综合在线| 久久精品国产亚洲a| 欧美一级在线播放| 国产精品你懂的在线欣赏| 亚洲精品永久免费| 一本色道久久综合亚洲精品不卡| 欧美va天堂| 欧美激情久久久久| 亚洲国产另类久久久精品极度 | 久久蜜桃av一区精品变态类天堂| 国产精品久久999| 99视频超级精品| 一区二区三区日韩精品视频| 欧美激情精品久久久久久| 欧美成人日韩| 亚洲人成亚洲人成在线观看图片| 六月婷婷一区| 最新中文字幕一区二区三区| 亚洲精品一区二区三区不| 欧美电影免费网站| 亚洲精品在线视频| 亚洲国产精品99久久久久久久久| 欧美日韩视频在线| 亚洲另类在线一区| 亚洲专区一区| 国产精品一区二区在线观看不卡| 亚洲一区二区黄色| 久久99伊人| 影音先锋日韩有码| 蜜臀av在线播放一区二区三区| 亚洲国产欧美在线| 亚洲视频大全| 国产日韩在线播放| 久久久99爱| 亚洲欧洲三级| 欧美一区二区三区在线观看| 黄色在线成人| 欧美精品乱人伦久久久久久 | 欧美大片一区二区三区| 亚洲日本aⅴ片在线观看香蕉| 欧美精品成人在线| 亚洲综合清纯丝袜自拍| 久久婷婷国产综合国色天香| 亚洲精品乱码久久久久久蜜桃麻豆 | 久久中文欧美| 宅男精品导航| 国产三级欧美三级| 欧美a级片一区| 亚洲一区二区三区涩| 久久夜色精品国产欧美乱极品| 精品99视频| 欧美激情精品| 欧美在线视频观看免费网站| 欧美国产精品va在线观看| 一本色道久久88亚洲综合88| 国产午夜精品理论片a级大结局 | 久久先锋影音av| 亚洲精品国产精品国产自| 欧美在线播放一区| 最近看过的日韩成人| 国产美女一区| 欧美另类在线播放| 久久久五月天| 亚洲影院免费| 亚洲啪啪91| 欧美成人资源网| 久久精品国产91精品亚洲| 在线亚洲精品| 亚洲黄色影院| 一区二区在线观看av| 国产精品美女一区二区| 欧美a级在线| 久久久久国产一区二区| 亚洲视频高清| 99国产精品99久久久久久| 欧美成人tv| 老牛嫩草一区二区三区日本| 欧美亚洲一区二区在线| 日韩一区二区高清| 亚洲精品美女免费| 在线日韩欧美| 尤物九九久久国产精品的特点| 国产精品一区二区久久久久| 欧美亚一区二区| 欧美日韩日本视频| 欧美精品午夜视频| 欧美国产高潮xxxx1819| 久久乐国产精品| 久久天堂精品| 久久五月天婷婷| 玖玖综合伊人| 久久九九全国免费精品观看| 小处雏高清一区二区三区| 日韩视频免费观看高清完整版| 最新亚洲视频| 亚洲免费观看高清完整版在线观看| 久久综合伊人77777尤物| 久久理论片午夜琪琪电影网| 久久琪琪电影院| 久热国产精品视频| 欧美二区在线| 亚洲黄色免费| 亚洲精品一区二区三| 99国产精品国产精品久久| 亚洲毛片av在线| 亚洲视频电影图片偷拍一区| 亚洲一区二区三区精品动漫| 午夜在线一区| 久久久久久久久岛国免费| 美女国产一区| 欧美日韩国产影院| 国产精品欧美激情| 国产在线播精品第三| 亚洲国产色一区| 中文国产成人精品| 久久国产精品亚洲77777| 久久婷婷国产综合尤物精品| 欧美电影电视剧在线观看| 亚洲看片网站| 亚洲欧美在线免费| 美女网站在线免费欧美精品| 欧美激情影音先锋| 国产精品丝袜xxxxxxx| 黄色成人91| 一本色道久久综合狠狠躁篇怎么玩| 亚洲欧美一区二区激情| 久久久五月天| 在线一区免费观看| 久久久水蜜桃| 国产精品免费观看在线| 在线观看成人网| 亚洲女同性videos| 欧美韩日精品| 亚洲中无吗在线| 欧美高清在线精品一区| 国产伦精品一区二区三区照片91| 亚洲激情自拍| 久久精品视频在线免费观看| 亚洲第一搞黄网站| 亚洲欧洲99久久| 欧美日在线观看| 亚洲人www| 久久久久久电影| 中日韩在线视频|