error 变量置的不同定义

当linux中的C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因,在实际编程中用这一招解决了不少原本看来莫名其妙的问题。但是 errno是一个数字,代表的具体含义还要到errno.h中去阅读宏定义,而每次查阅是一件很繁琐的事情。有下面几种方法可以方便的得到错误信息

 (1)void perror(const char *s) (2) char *strerror(int errno)

下面的列表显示常见的 Linux 系统错误代码。
1 EPERM
Operation not permitted
操作不许可
2 ENOENT
No such file or directory
无此文件或目录
3 ESRCH
No such process
无此过程
4 EINTR
Interrupted system call
系统调用被禁止
5 EIO
I/ O error
I/ O 错误
6 ENXIO
No such device or address
无此器件或地址
7 E2BIG
Arg list too long
Arg 列表太长
8 ENOEXEC
Exec format error
Exec 格式错误
9 EBADF
Bad file number
文件数目错误
10 ECHILD
No child processes
无子过程
11 EAGAIN
Try again
再试一遍
12 ENOMEM
Out of memory
内存溢出
13 EACCES
Permission denied
许可拒绝
14 EFAULT
Bad address
错误的地址
15 ENOTBLK
Block device required
需要块设备
16 EBUSY
Device or resource busy
设备或资源忙
17 EEXIST
File exists
文件存在
18 EXDEV
Cross- device link
跨器链接
19 ENODEV
No such device
无此设备
20 ENOTDIR
Not a directory
不是一个目录
21 EISDIR
Is a directory
是一个目录
22 EINVAL
Invalid argument
无效的函数自变量
23 ENFILE
File table overflow
文件表溢出
24 EMFILE
Too many open files
打开的文件太多
25 ENOTTY
Inappropriate ioctl for device

26 ETXTBSY
Text file busy
文本文件忙
27 EFBIG
File too large
文件太大
28 ENOSPC
No space left on device
磁盘空间不足
29 ESPIPE
Illegal seek
不合法的寻找
30 EROFS
Read - only file system
只读文件系统
31 EMLINK
Too many links
太多的链接

比如开始我的问题是error==enitr

主要用意是用来处理遇到的一些意外信号中断,使程序不意外退出。

if ( errno = = EINTR)
          continue ;
       else
          printf ( "Timed out./n" ) ;
        }

 

这样就解决一直有ENITR错误提示啦

你可能感兴趣的:(linux,File,table,System,include,磁盘)