为了方便查看Linux系统下的错误码以及它的含义,写了一个程序来打印这些信息。
listerrno.c
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#define MAX_ERRNO 256
int main(int argc, char* argv[])
{
int n = 0;
printf("----------------------- Errno --------------------\n");
for(n=0; n < MAX_ERRNO; n++)
{
printf("#%d, %s\n", n, strerror(n));
}
printf("--------------------------------------------------\n");
return 0;
}
Makefile:
E_TARGET = listerrno
all: $(E_TARGET)
listerrno:
gcc -o $@ listerrno.c
clean:
rm -rf $(E_TARGET) *.o
在Redhat Enterprise Linux 5 上的打印结果:
----------------------- Errno --------------------
#0, Success
#1, Operation not permitted
#2, No such file or directory
#3, No such process
#4, Interrupted system call
#5, Input/output error
#6, No such device or address
#7, Argument list too long
#8, Exec format error
#9, Bad file descriptor
#10, No child processes
#11, Resource temporarily unavailable
#12, Cannot allocate memory
#13, Permission denied
#14, Bad address
#15, Block device required
#16, Device or resource busy
#17, File exists
#18, Invalid cross-device link
#19, No such device
#20, Not a directory
#21, Is a directory
#22, Invalid argument
#23, Too many open files in system
#24, Too many open files
#25, Inappropriate ioctl for device
#26, Text file busy
#27, File too large
#28, No space left on device
#29, Illegal seek
#30, Read-only file system
#31, Too many links
#32, Broken pipe
#33, Numerical argument out of domain
#34, Numerical result out of range
#35, Resource deadlock avoided
#36, File name too long
#37, No locks available
#38, Function not implemented
#39, Directory not empty
#40, Too many levels of symbolic links
#41, Unknown error 41
#42, No message of desired type
#43, Identifier removed
#44, Channel number out of range
#45, Level 2 not synchronized
#46, Level 3 halted
#47, Level 3 reset