errno linux c

本文介绍了Linux系统中错误号的定义及其含义,详细列举了从EPERM到ERANGE的常见错误号,并解释了如readEINTR、readEBADF及readEISDIR等特定场景下错误号的应用。

错误号定义位置:

/usr/src/linux-headers-3.16.0-36/include/uapi/asm-generic/errno-base.h  (1~34)

/usr/src/linux-headers-3.16.0-36/include/uapi/asm-generic/errno.h  (跟多)


#define EPERM    1  /* Operation not permitted */
#define ENOENT     2  /* No such file or directory */
#define ESRCH    3  /* No such process */
#define EINTR    4  /* Interrupted system call */

read EINTR 在读取到数据以前调用被信号所中断

#define EIO    5  /* I/O error */
#define ENXIO    6  /* No such device or address */
#define E2BIG    7  /* Argument list too long */
#define ENOEXEC    8  /* Exec format error */
#define EBADF    9  /* Bad file number */

read EBADF  fd 不是一个合法的文件描述符,或者不是为读操作而打开.#define ECHILD    10  /* No child processes */
#define EAGAIN    11  /* Try again */

read EAGAIN 使用 O_NONBLOCK 标志指定了非阻塞式输入输出,但当前没有数据可读.

#define ENOMEM    12  /* Out of memory */
#define EACCES    13  /* Permission denied */
#define EFAULT    14  /* Bad address */
#define ENOTBLK   15  /* Block device required */
#define EBUSY   16  /* Device or resource busy */
#define EEXIST    17  /* File exists */
#define EXDEV   18  /* Cross-device link */
#define ENODEV    19  /* No such device */
#define ENOTDIR   20  /* Not a directory */
#define EISDIR    21  /* Is a directory */

read EISDIR  fd 指向一个目录#define EINVAL    22  /* Invalid argument */
#define ENFILE    23  /* File table overflow */
#define EMFILE    24  /* Too many open files */
#define ENOTTY    25  /* Not a typewriter */
#define ETXTBSY   26  /* Text file busy */
#define EFBIG   27  /* File too large */
#define ENOSPC    28  /* No space left on device */
#define ESPIPE    29  /* Illegal seek */
#define EROFS   30  /* Read-only file system */
#define EMLINK    31  /* Too many links */
#define EPIPE   32  /* Broken pipe */
#define EDOM    33  /* Math argument out of domain of func */
#define ERANGE    34  /* Math result not representable */










转载于:https://my.oschina.net/u/2357574/blog/411504

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值