15.1 errno
vi /usr/include/asm-generic/errno-base.h
#define EPERM #define ENOENT #define ESRCH #define EINTR #define EIO 5 #define ENXIO #define E2BIG #define ENOEXEC #define EBADF #define ECHILD #define EAGAIN #define ENOMEM #define EACCES #define EFAULT #define ENOTBLK #define EBUSY #define EEXIST #define EXDEV #define ENODEV #define ENOTDIR #define EISDIR #define EINVAL #define ENFILE #define EMFILE #define ENOTTY #define ETXTBSY #define EFBIG #define ENOSPC #define ESPIPE #define EROFS #define EMLINK #define EPIPE #define EDOM #define ERANGE
1 /* Operation not permitted */
2 /* No such file or directory */ 3 /* No such process */
4 /* Interrupted system call */
/* I/O error */
6 /* No such device or address */ 7 /* Argument list too long */
8 /* Exec format error */
9 /* Bad file number */
10 /* No child processes */ 11 /* Try again */
12 /* Out of memory */
13 /* Permission denied */ 14 /* Bad address */
15 /* Block device required */
16 /* Device or resource busy */
17 /* File exists */
18 /* Cross-device link */
19 /* No such device */
20 /* Not a directory */
21 /* Is a directory */
22 /* Invalid argument */
23 /* File table overflow */
24 /* Too many open files */
25 /* Not a typewriter */
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 /* Math argument out of domain of func */ 34 /* Math result not representable */
210 第15章 错误处理机制15.2 perror
#include <stdio.h>
void perror(const char *s); #include <errno.h>
const char *sys_errlist[]; int sys_nerr;
int errno;
15.3 strerror
#include <string.h>
char *strerror(int errnum);
int strerror_r(int errnum, char *buf, size_t buflen); /* XSI-compliant */
char *strerror_r(int errnum, char *buf, size_t buflen); /* GNU-specific */