标签:
当Unix系统级函数遇到错误时,它们会典型地返回-1,并设置全局整数变量errno来表示什么出错了
阅读redis源码的时候,发现如果对系统级函数出错时的errno比较熟悉,写起程序来会游刃有余不少。所以,趁着学习APUE和CSAPP的时候,将自己遇到的常用系统级函数在出错时候返回的errno总结起来(不然每个都perror一次,好累啊 ==),会随着学习进度不断找时间更新哒~
ECHILD:
#include <sys/types.h> #include <sys/wait.h> pid_t waitpid(pid_t pid, int *status, int options);
如果调用进程没有子进程,那么waitpid返回-1,并设置errno为ECHILD
EINTER:
#include <sys/types.h> #include <sys/wait.h> pid_t waitpid(pid_t pid, int *status, int options);
如果waitpid函数被一个信号中断,那么它返回-1,并设置errno为EINTR
EINVAL:
#include <unistd.h>
long sysconf(int name); long pathconf(const char *pathname, int name); log fpathconf(int fd, int name);
如果name 参数并不是一个合适的常量,这3个函数都返回 -1, 并把errno设置为EINVAL
ESPIPE:
#include <unistd.h> offt_t lseek(int fd, off_t offset, int whence);
如果文件描述符指向的是一个管道、FIFO或网络套接字,因为这些文件不可以设置偏移量,所以lseek返回-1,并将errno设置为ESPIPE
UNIX 系统调用函数errno返回值搜集(in updating )
标签:
原文地址:http://www.cnblogs.com/viggoxskingdom/p/4985545.html