exit函数
exit中的参数exit_code为0代表进程正常终止,若为其他值表示程序执行过程中有错误发生。出错时退出一般用exit(EXIT_FAILURE);
errno
errno表示错误代码。 记录系统的最后一次错误代码。代码是一个int型的值,在errno.h中定义。系统每一次出错都会对应一个出错代码,例如12表示“Cannot allocate memory”。
stderr和fprintf函数
linux中的进程启动时,都会打开三个文件:标准输入、标准输出和标准出错处理。通常这三个文件都与终端联系。这三个文件分别对应文件描述符0、1、2。系队统自定义了三个文件指针stdin、stdout、stderr,分别指向标准输入、标准输出和标准出错输出。stderr是linux标准出错的文件指针,定义为extern struct _IO_FILE *stderr;
,对应文件描述符2,通常结合fprintf使用:
fprintf(stderr,"error message"); //不必加换行
STDERR_FILENO和write函数
/* 文件描述符*/
#define STDIN_FILENO 0 /* Standard input. */
#define STDOUT_FILENO 1 /* Standard output. */
#define STDERR_FILENO 2 /* Standard error output. */
与上面用法类似,但write的首个参数是文件描述符:
char err[] = "error\n";
write(STDERR_FILENO,err,strlen(err)); //输出error(换行)
perror函数
需要包含头文件stdio.h
,perror是错误输出函数,在标准输出设备上输出一个错误信息,是对errno的封装。perror(“fun”),其输出为:fun:后面跟着错误信息(加一个换行符)。
perror("status:"); //不报错时,输出 status:Success
strerror函数
stderror是通过参数errno,返回错误信息:printf("strerror: %s\n",strerror(errno));