c語言所有的errno枚舉值含義


可以通過以下代碼,獲取所有的錯誤碼信息:

#include <string.h> /* for strerror */
#include <errno.h>
#include <stdio.h>


int main(int argc, char ** argv)
{
    int i = 0;
    for(i = 0; i < 256; i++)
        printf("errno-%02d is: %s\n", i, strerror(i));
    return 0;
}

編譯此程序用命令:

gcc -Wall strerror.c
執行程序:
./a.out
輸出如下:
errno-00 is: Success
errno-01 is: Operation not permitted
errno-02 is: No such file or directory
errno-03 is: No such process
errno-04 is: Interrupted system call
errno-05 is: Input/output error
errno-06 is: No such device or address
errno-07 is: Argument list too long
errno-08 is: Exec format error
errno-09 is: Bad file descriptor
errno-10 is: No child processes
errno-11 is: Resource temporarily unavailable
errno-12 is: Cannot allocate memory
errno-13 is: Permission denied
errno-14 is: Bad address
errno-15 is: Block device required
errno-16 is: Device or resource busy
errno-17 is: File exists
errno-18 is: Invalid cross-device link
errno-19 is: No such device
errno-20 is: Not a directory
errno-21 is: Is a directory
errno-22 is: Invalid argument
errno-23 is: Too many open files in system
errno-24 is: Too many open files
errno-25 is: Inappropriate ioctl for device
errno-26 is: Text file busy
errno-27 is: File too large
errno-28 is: No space left on device
errno-29 is: Illegal seek
errno-30 is: Read-only file system
errno-31 is: Too many links
errno-32 is: Broken pipe
errno-33 is: Numerical argument out of domain
errno-34 is: Numerical result out of range
errno-35 is: Resource deadlock avoided
errno-36 is: File name too long
errno-37 is: No locks available
errno-38 is: Function not implemented
errno-39 is: Directory not empty
errno-40 is: Too many levels of symbolic links
errno-41 is: Unknown error 41
errno-42 is: No message of desired type
errno-43 is: Identifier removed
errno-44 is: Channel number out of range
errno-45 is: Level 2 not synchronized
errno-46 is: Level 3 halted
errno-47 is: Level 3 reset
errno-48 is: Link number out of range
errno-49 is: Protocol driver not attached
errno-50 is: No CSI structure available
errno-51 is: Level 2 halted
errno-52 is: Invalid exchange
errno-53 is: Invalid request descriptor
errno-54 is: Exchange full
errno-55 is: No anode
errno-56 is: Invalid request code
errno-57 is: Invalid slot
errno-58 is: Unknown error 58
errno-59 is: Bad font file format
errno-60 is: Device not a stream
errno-61 is: No data available

errno-62 is: Timer expired

今天遇到了這個問題,原因是連接建立好以後,長時間沒有數據傳輸,導致計時器超時,這種長連接有兩種方法可以解決:
1是發送心跳包
2是完善的自動重練機制

errno-63 is: Out of streams resources
errno-64 is: Machine is not on the network
errno-65 is: Package not installed
errno-66 is: Object is remote
errno-67 is: Link has been severed
errno-68 is: Advertise error
errno-69 is: Srmount error
errno-70 is: Communication error on send
errno-71 is: Protocol error
errno-72 is: Multihop attempted
errno-73 is: RFS specific error
errno-74 is: Bad message
errno-75 is: Value too large for defined data type
errno-76 is: Name not unique on network
errno-77 is: File descriptor in bad state
errno-78 is: Remote address changed
errno-79 is: Can not access a needed shared library
errno-80 is: Accessing a corrupted shared library
errno-81 is: .lib secion in a.out corrupted
errno-82 is: Attempting to link in too many shared libraries
errno-83 is: Cannot exec a shared library directly
errno-84 is: Invalid or incomplete multibyte or wide character
errno-85 is: Interrupted system call should be restarted
errno-86 is: Streams pipe error
errno-87 is: Too many users
errno-88 is: Socket operation on non-socket
errno-89 is: Destination address required
errno-90 is: Message too long
errno-91 is: Protocol wrong type for socket
errno-92 is: Protocol not available
errno-93 is: Protocol not supported
errno-94 is: Socket type not supported
errno-95 is: Operation not supported
errno-96 is: Protocol family not supported
errno-97 is: Address family not supported by protocol
errno-98 is: Address already in use

errno-99 is: Cannot assign requested address

今天遇到了這個問題,原因是:
客戶端頻繁的連服務器,由於每次連接都在很短的時間內結束,導致很多的TIME_WAIT,以至於用光了可用的端 口號,所以新的連接沒辦法綁定端口,即“Cannot assign requested address”。是客戶端的問題不是服務器端的問題。通過netstat,的確看到很多TIME_WAIT狀態的連接
[root@sjs_131_126 socket_client]# netstat -nalp |grep ./client|wc -l
15993
errno-100 is: Network is down
errno-101 is: Network is unreachable
errno-102 is: Network dropped connection on reset
errno-103 is: Software caused connection abort
errno-104 is: Connection reset by peer
errno-105 is: No buffer space available
errno-106 is: Transport endpoint is already connected
errno-107 is: Transport endpoint is not connected
errno-108 is: Cannot send after transport endpoint shutdown
errno-109 is: Too many references: cannot splice
errno-110 is: Connection timed out
errno-111 is: Connection refused
errno-112 is: Host is down
errno-113 is: No route to host
errno-114 is: Operation already in progress
errno-115 is: Operation now in progress
errno-116 is: Stale NFS file handle
errno-117 is: Structure needs cleaning
errno-118 is: Not a XENIX named type file
errno-119 is: No XENIX semaphores available
errno-120 is: Is a named type file
errno-121 is: Remote I/O error
errno-122 is: Disk quota exceeded
errno-123 is: No medium found
errno-124 is: Wrong medium type
errno-125 is: Operation canceled
errno-126 is: Required key not available
errno-127 is: Key has expired
errno-128 is: Key has been revoked
errno-129 is: Key was rejected by service
errno-130 is: Owner died
errno-131 is: State not recoverable
errno-132 is: Unknown error 132
132-255全是Unknown error
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章