《GNU/Linux编程指南》一书中对出错处理部分写的不错。
常用的内容如下:
l <assert.h>中支持assert()函数,注意,assert()检查发现条件不成立时调用abort()终止程序执行,应用程序没有机会做清除工作。
l C标准定义了__LINE__和__FILE__宏,GNU C扩展中定义了__FUNCTION__宏。
l <errno.h>中定义了errno,注意没有函数会将errno清零,所以在调用可能设置errno的函数之前先将errno清零。
l <stdlib.h>中定义了abort()、exit()和atexit()函数。
l 函数abort()将导致程序异常终止,在终止前程序没有机会执行atexit()登记的函数,也没有计划执行一些常规的清除工作。同时,abort()还会产生core dump,如果没有ulimit限制的话。
l 函数exit()和abort()类似,但它在完成清理工作之后才终止程序。
l 函数atexit()登记在程序正常终止时要调用的函数。
l <stdio.h>中定义了perror(),<string.h>中定义了strerror()。
l <syslog.h>中定义了syslogd的接口。