EINTR
EINTR 是错误号
产生它有2个原因:被信号打断、超时
可能非有意而为产生信号的原因:
进程调试
控制台切换
任务切换
伪终端断开
异步IO
父进程死亡导致孤儿进程
子进程退出
系统重启或关闭
只要保证程序不受上述原因影响可能就不需要检查信号打断错误。
/************************************************************************************************************/
cat /usr/include/asm/errno.h
#ifndef
_I386_ERRNO_H
#define _I386_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 */
#define
EIO 5 /* I/O error */
#define ENXIO
6 /* No such device or address */
#define E2BIG
7 /* Arg list too long */
#define ENOEXEC 8 /*
Exec format error */
#define EBADF 9 /* Bad file
number */
#define ECHILD 10 /* No child processes */
#define
EAGAIN 11 /* Try again */
#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 */
#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 */
#define EDEADLK 35 /*
Resource deadlock would occur */
#define ENAMETOOLONG 36 /*
File name too long */
#define ENOLCK 37 /* No record
locks available */
#define ENOSYS 38 /* Function not
implemented */
#define ENOTEMPTY 39 /* Directory not empty
*/
#define ELOOP 40 /* Too many symbolic links
encountered */
#define EWOULDBLOCK EAGAIN /* Operation would
block */
#define ENOMSG 42 /* No message of desired
type */
#define EIDRM 43 /* Identifier removed */
#define
ECHRNG 44 /* Channel number out of range */
#define
EL2NSYNC 45 /* Level 2 not synchronized */
#define
EL3HLT 46 /* Level 3 halted */
#define EL3RST
47 /* Level 3 reset */
#define ELNRNG 48 /* Link
number out of range */
#define EUNATCH 49 /* Protocol
driver not attached */
#define ENOCSI 50 /* No CSI
structure available */
#define EL2HLT 51 /* Level 2
halted */
#define EBADE 52 /* Invalid exchange */
#define
EBADR 53 /* Invalid request descriptor */
#define
EXFULL 54 /* Exchange full */
#define ENOANO
55 /* No anode */
#define EBADRQC 56 /* Invalid
request code */
#define EBADSLT 57 /* Invalid slot */
#define EDEADLOCK EDEADLK
#define EBFONT 59 /* Bad font file format */
#define
ENOSTR 60 /* Device not a stream */
#define
ENODATA 61 /* No data available */
#define
ETIME 62 /* Timer expired */
#define ENOSR
63 /* Out of streams resources */
#define ENONET
64 /* Machine is not on the network */
#define ENOPKG
65 /* Package not installed */
#define EREMOTE 66
/* Object is remote */
#define ENOLINK 67 /* Link has
been severed */
#define EADV 68 /* Advertise error */
#define
ESRMNT 69 /* Srmount error */
#define ECOMM
70 /* Communication error on send */
#define EPROTO
71 /* Protocol error */
#define EMULTIHOP 72 /*
Multihop attempted */
#define EDOTDOT 73 /* RFS specific
error */
#define EBADMSG 74 /* Not a data message */
#define
EOVERFLOW 75 /* Value too large for defined data type */
#define
ENOTUNIQ 76 /* Name not unique on network */
#define
EBADFD 77 /* File descriptor in bad state */
#define
EREMCHG 78 /* Remote address changed */
#define
ELIBACC 79 /* Can not access a needed shared library */
#define
ELIBBAD 80 /* Accessing a corrupted shared library */
#define
ELIBSCN 81 /* .lib section in a.out corrupted */
#define
ELIBMAX 82 /* Attempting to link in too many shared
libraries */
#define ELIBEXEC 83 /* Cannot exec a shared
library directly */
#define EILSEQ 84 /* Illegal byte
sequence */
#define ERESTART 85 /* Interrupted system
call should be restarted */
#define ESTRPIPE 86 /*
Streams pipe error */
#define EUSERS 87 /* Too many
users */
#define ENOTSOCK 88 /* Socket operation on
non-socket */
#define EDESTADDRREQ 89 /* Destination address
required */
#define EMSGSIZE 90 /* Message too long */
#define
EPROTOTYPE 91 /* Protocol wrong type for socket */
#define
ENOPROTOOPT 92 /* Protocol not available */
#define
EPROTONOSUPPORT 93 /* Protocol not supported */
#define
ESOCKTNOSUPPORT 94 /* Socket type not supported */
#define
EOPNOTSUPP 95 /* Operation not supported on transport endpoint
*/
#define EPFNOSUPPORT 96 /* Protocol family not supported
*/
#define EAFNOSUPPORT 97 /* Address family not supported by
protocol */
#define EADDRINUSE 98 /* Address already in
use */
#define EADDRNOTAVAIL 99 /* Cannot assign requested
address */
#define ENETDOWN 100 /* Network is down */
#define
ENETUNREACH 101 /* Network is unreachable */
#define
ENETRESET 102 /* Network dropped connection because of reset
*/
#define ECONNABORTED 103 /* Software caused connection
abort */
#define ECONNRESET 104 /* Connection reset by peer
*/
#define ENOBUFS 105 /* No buffer space available */
#define
EISCONN 106 /* Transport endpoint is already connected */
#define
ENOTCONN 107 /* Transport endpoint is not connected */
#define
ESHUTDOWN 108 /* Cannot send after transport endpoint
shutdown */
#define ETOOMANYREFS 109 /* Too many references:
cannot splice */
#define ETIMEDOUT 110 /* Connection timed
out */
#define ECONNREFUSED 111 /* Connection refused */
#define
EHOSTDOWN 112 /* Host is down */
#define EHOSTUNREACH
113 /* No route to host */
#define EALREADY 114 /*
Operation already in progress */
#define EINPROGRESS 115 /*
Operation now in progress */
#define ESTALE 116 /* Stale
NFS file handle */
#define EUCLEAN 117 /* Structure
needs cleaning */
#define ENOTNAM 118 /* Not a XENIX
named type file */
#define ENAVAIL 119 /* No XENIX
semaphores available */
#define EISNAM 120 /* Is a named
type file */
#define EREMOTEIO 121 /* Remote I/O error */
#define
EDQUOT 122 /* Quota exceeded */
#define ENOMEDIUM 123 /* No medium found */
#define
EMEDIUMTYPE 124 /* Wrong medium type */
#endif
阅读(663) | 评论(0) | 转发(0) |