让我们编译并运行上面的程序,当文件 file.txt 不存在时,将产生以下结果:
C 标准库 - <errno.h>
Crossing7
126***1330@qq.com
大家可以修改上述代码里 errno 的值从而得出不同的错误类型,从 43 之后就一直是 Unknown error 错误类型。
Value of errno: 0 Error opening file: No error Value of errno: 1 Error opening file: Operation not permitted Value of errno: 2 Error opening file: No such file or directory Value of errno: 3 Error opening file: No such process Value of errno: 4 Error opening file: Interrupted function call Value of errno: 5 Error opening file: Input/output error Value of errno: 6 Error opening file: No such device or address Value of errno: 7 Error opening file: Arg list too long Value of errno: 8 Error opening file: Exec format error Value of errno: 9 Error opening file: Bad file descriptor Value of errno: 10 Error opening file: No child processes Value of errno: 11 Error opening file: Resource temporarily unavailable Value of errno: 12 Error opening file: Not enough space Value of errno: 13 Error opening file: Permission denied Value of errno: 14 Error opening file: Bad address Value of errno: 15 Error opening file: Unknown error Value of errno: 16 Error opening file: Resource device Value of errno: 17 Error opening file: File exists Value of errno: 18 Error opening file: Improper link Value of errno: 19 Error opening file: No such device Value of errno: 20 Error opening file: Not a directory Value of errno: 21 Error opening file: Is a directory Value of errno: 22 Error opening file: Invalid argument Value of errno: 23 Error opening file: Too many open files in system Value of errno: 24 Error opening file: Too many open files Value of errno: 25 Error opening file: Inappropriate I/O control operation Value of errno: 26 Error opening file: Unknown error Value of errno: 27 Error opening file: File too large Value of errno: 28 Error opening file: No space left on device Value of errno: 29 Error opening file: Invalid seek Value of errno: 30 Error opening file: Read-only file system Value of errno: 31 Error opening file: Too many links Value of errno: 32 Error opening file: Broken pipe Value of errno: 33 Error opening file: Domain error Value of errno: 34 Error opening file: Result too large Value of errno: 35 Error opening file: Unknown error Value of errno: 36 Error opening file: Resource deadlock avoided Value of errno: 37 Error opening file: Unknown error Value of errno: 38 Error opening file: Filename too long Value of errno: 39 Error opening file: No locks available Value of errno: 40 Error opening file: Function not implemented Value of errno: 41 Error opening file: Directory not empty Value of errno: 42 Error opening file: Illegal byte sequence Value of errno: 43 Error opening file: Unknown error Value of errno: 44 Error opening file: Unknown error Value of errno: 45 Error opening file: Unknown error Value of errno: 46 Error opening file: Unknown error
duckduck
pan***20812@gmail.com
我做一个补充,上面应该是Windows环境下的输出,linux 下是(CentOS release 6.10 (Final))。
errno 0: Success errno 1: Operation not permitted errno 2: No such file or directory errno 3: No such process errno 4: Interrupted system call errno 5: Input/output error errno 6: No such device or address errno 7: Argument list too long errno 8: Exec format error errno 9: Bad file descriptor errno 10: No child processes errno 11: Resource temporarily unavailable errno 12: Cannot allocate memory errno 13: Permission denied errno 14: Bad address errno 15: Block device required errno 16: Device or resource busy errno 17: File exists errno 18: Invalid cross-device link errno 19: No such device errno 20: Not a directory errno 21: Is a directory errno 22: Invalid argument errno 23: Too many open files in system errno 24: Too many open files errno 25: Inappropriate ioctl for device errno 26: Text file busy errno 27: File too large errno 28: No space left on device errno 29: Illegal seek errno 30: Read-only file system errno 31: Too many links errno 32: Broken pipe errno 33: Numerical argument out of domain errno 34: Numerical result out of range errno 35: Resource deadlock avoided errno 36: File name too long errno 37: No locks available errno 38: Function not implemented errno 39: Directory not empty errno 40: Too many levels of symbolic links errno 41: Unknown error 41 errno 42: No message of desired type errno 43: Identifier removed errno 44: Channel number out of range errno 45: Level 2 not synchronized errno 46: Level 3 halted errno 47: Level 3 reset errno 48: Link number out of range errno 49: Protocol driver not attached errno 50: No CSI structure available errno 51: Level 2 halted errno 52: Invalid exchange errno 53: Invalid request descriptor errno 54: Exchange full errno 55: No anode errno 56: Invalid request code errno 57: Invalid slot errno 58: Unknown error 58 errno 59: Bad font file format errno 60: Device not a stream errno 61: No data available errno 62: Timer expired errno 63: Out of streams resources errno 64: Machine is not on the network errno 65: Package not installed errno 66: Object is remote errno 67: Link has been severed errno 68: Advertise error errno 69: Srmount error errno 70: Communication error on send errno 71: Protocol error errno 72: Multihop attempted errno 73: RFS specific error errno 74: Bad message errno 75: Value too large for defined data type errno 76: Name not unique on network errno 77: File descriptor in bad state errno 78: Remote address changed errno 79: Can not access a needed shared library errno 80: Accessing a corrupted shared library errno 81: .lib section in a.out corrupted errno 82: Attempting to link in too many shared libraries errno 83: Cannot exec a shared library directly errno 84: Invalid or incomplete multibyte or wide character errno 85: Interrupted system call should be restarted errno 86: Streams pipe error errno 87: Too many users errno 88: Socket operation on non-socket errno 89: Destination address required errno 90: Message too long errno 91: Protocol wrong type for socket errno 92: Protocol not available errno 93: Protocol not supported errno 94: Socket type not supported errno 95: Operation not supported errno 96: Protocol family not supported errno 97: Address family not supported by protocol errno 98: Address already in use errno 99: Cannot assign requested address errno 100: Network is down errno 101: Network is unreachable errno 102: Network dropped connection on reset errno 103: Software caused connection abort errno 104: Connection reset by peer errno 105: No buffer space available errno 106: Transport endpoint is already connected errno 107: Transport endpoint is not connected errno 108: Cannot send after transport endpoint shutdown errno 109: Too many references: cannot splice errno 110: Connection timed out errno 111: Connection refused errno 112: Host is down errno 113: No route to host errno 114: Operation already in progress errno 115: Operation now in progress errno 116: Stale file handle errno 117: Structure needs cleaning errno 118: Not a XENIX named type file errno 119: No XENIX semaphores available errno 120: Is a named type file errno 121: Remote I/O error errno 122: Disk quota exceeded errno 123: No medium found errno 124: Wrong medium type errno 125: Operation canceled errno 126: Required key not available errno 127: Key has expired errno 128: Key has been revoked errno 129: Key was rejected by service errno 130: Owner died errno 131: State not recoverable errno 132: Operation not possible due to RF-kill