逆向程序时调用__xstat64运行后返回值是-1,errno的值为2,为了搞清楚对应的描述,故而全显示出来。
#include <stdio.h>
#include <string.h>
#include <errno.h>
#if 0
/usr/include/asm-generic/errno-base.h 1-34
/usr/include/asm-generic/errno.h 35-133
#endif
#define ERRNO_LEN 133
int main()
{
int err_num;
for (err_num = 0; err_num <= ERRNO_LEN; err_num++) {
errno = err_num;
printf("errno:%d:\t%s\n", err_num, strerror(errno));
}
return 0;
}
#if 0
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
errno:133: Memory page has hardware error
#endif