Head First C 第九章 进程与系统调用 出错处理
Head First C 第九章 进程与系统调用 出错处理 大多数的系统调用以相同的方式出错 需求:想知道系统调用为什么会失败,因此所有的系统调用都遵循“失败黄金法则”。 尽可能的收拾残局 把errno变量设为错误码 返回-1 errno 变量是定义在 errno.h 中的全局变量,和它定义在一起的还有很多标准错误码。 EPERM=1 不允许操作 ENOENT=2 没有该文件或目录 ESRCH=3 没有该进程 使用strerror打印标准错误 #include <errno.h> #include <stdio.h> #include <string.h> #include <unistd.h> int main() { if (execl("ifconfig", "ifconfig", NULL) == -1) if (execlp("kryptonite", "kryptonite", NULL) == -1) { fprintf(stderr, "Can not run ipconfig:%s\n", strerror(errno)); return 1; } return 0; } 系统调用在出错时通常会返回-1,但不是绝对的 系统调用在出错的同时,将errno变量设为错误码。 来源: oschina 链接: https://my.oschina.net/u/2491285