1 /**
2  * @file errno.h
3  * @author fslongjin (longjin@RinGoTek.cn)
4  * @brief
5  * @version 0.1
6  * @date 2022-04-22
7  *
8  * @copyright Copyright (c) 2022
9  *
10  */
11 #pragma once
12 
13 #if defined(__cplusplus)
14 extern "C"
15 {
16 #endif
17 
18 #define E2BIG 1 /* 参数列表过长,或者在输出buffer中缺少空间 或者参数比系统内建的最大值要大 Argument list too long. */
19 #define EACCES 2        /* 访问被拒绝 Permission denied */
20 #define EADDRINUSE 3    /* 地址正在被使用 Address in use.*/
21 #define EADDRNOTAVAIL 4 /* 地址不可用 Address  not available.*/
22 #define EAFNOSUPPORT 5  /* 地址family不支持 Address family not supported. */
23 #define EAGAIN 6 /* 资源不可用,请重试。 Resource unavailable, try again (may be the same value as [EWOULDBLOCK]).*/
24 #define EALREADY 7 /* 连接已经在处理 Connection already in progress. */
25 #define EBADF 8    /* 错误的文件描述符 Bad file descriptor. */
26 #define EBADMSG 9  /* 错误的消息 Bad message. */
27 
28 #define EBUSY 10        /* 设备或资源忙 Device or resource busy. */
29 #define ECANCELED 11    /* 操作被取消 Operation canceled. */
30 #define ECHILD 12       /* 没有子进程 No child processes. */
31 #define ECONNABORTED 13 /* 连接已断开 Connection aborted. */
32 #define ECONNREFUSED 14 /* 连接被拒绝 Connection refused. */
33 #define ECONNRESET 15   /* 连接被重置 Connection reset. */
34 #define EDEADLK 16      /* 资源死锁将要发生 Resource deadlock would occur. */
35 #define EDESTADDRREQ 17 /* 需要目标地址 Destination address required.*/
36 #define EDOM 18         /* 数学参数超出作用域 Mathematics argument out of domain of function. */
37 #define EDQUOT 19       /* 保留使用 Reserved */
38 
39 #define EEXIST 20       /* 文件已存在 File exists. */
40 #define EFAULT 21       /* 错误的地址 Bad address */
41 #define EFBIG 22        /* 文件太大 File too large. */
42 #define EHOSTUNREACH 23 /* 主机不可达 Host is unreachable.*/
43 #define EIDRM 24        /* 标志符被移除 Identifier removed. */
44 #define EILSEQ 25       /* 不合法的字符序列 Illegal byte sequence. */
45 #define EINPROGRESS 26  /* 操作正在处理 Operation in progress. */
46 #define EINTR 27        /* 被中断的函数 Interrupted function. */
47 #define EINVAL 28       /* 不可用的参数 Invalid argument. */
48 #define EIO 29          /* I/O错误 I/O error. */
49 
50 #define EISCONN 30      /* 套接字已连接 Socket is connected. */
51 #define EISDIR 31       /* 是一个目录 Is a directory */
52 #define ELOOP 32        /* 符号链接级别过多 Too many levels of symbolic links. */
53 #define EMFILE 33       /* 文件描述符的值过大 File descriptor value too large. */
54 #define EMLINK 34       /* 链接数过多 Too many links. */
55 #define EMSGSIZE 35     /* 消息过大 Message too large. */
56 #define EMULTIHOP 36    /* 保留使用 Reserved. */
57 #define ENAMETOOLONG 37 /* 文件名过长 Filename too long. */
58 #define ENETDOWN 38     /* 网络已关闭 Network is down. */
59 #define ENETRESET 39    /* 网络连接已断开 Connection aborted by network. */
60 
61 #define ENETUNREACH 40 /* 网络不可达 Network unreachable. */
62 #define ENFILE 41      /* 系统中打开的文件过多 Too many files open in system.*/
63 #define ENOBUFS 42     /* 缓冲区空间不足 No buffer space available. */
64 #define ENODATA 43     /* 队列头没有可读取的消息 No message is available on the STREAM head read queue. */
65 #define ENODEV 44      /* 没有指定的设备 No such device. */
66 #define ENOENT 45      /* 没有指定的文件或目录 No such file or directory. */
67 #define ENOEXEC 46     /* 可执行文件格式错误 Executable file format error. */
68 #define ENOLCK 47      /* 没有可用的锁 No locks available. */
69 #define ENOLINK 48     /* 保留 Reserved. */
70 #define ENOMEM 49      /* 没有足够的空间 Not enough space. */
71 
72 #define ENOMSG 50          /* 没有期待类型的消息 No message of the desired type. */
73 #define ENOPROTOOPT 51     /* 协议不可用 Protocol not available. */
74 #define ENOSPC 52          /* 设备上没有空间 No space left on device. */
75 #define ENOSR 53           /* 没有STREAM资源  No STREAM resources.*/
76 #define ENOSTR 54          /* 不是STREAM Not a STREAM */
77 #define ENOSYS 55          /* 功能不支持 Function not supported. */
78 #define ENOTCONN 56        /* 套接字未连接 The socket is not connected. */
79 #define ENOTDIR 57         /* 不是目录 Not a directory. */
80 #define ENOTEMPTY 58       /* 目录非空 Directory not empty. */
81 #define ENOTRECOVERABLE 59 /* 状态不可恢复 State not recoverable. */
82 
83 #define ENOTSOCK 60 /* 不是一个套接字 Not a socket.*/
84 #define ENOTSUP 61  /* 不被支持 Not supported (may be the same value as [EOPNOTSUPP]). */
85 #define ENOTTY 62   /* 不正确的I/O控制操作 Inappropriate I/O control operation. */
86 #define ENXIO 63    /* 没有这样的设备或地址 No such device or address. */
87 #define EOPNOTSUPP 64 /* 套接字不支持该操作 Operation not supported on socket (may be the same value as [ENOTSUP]). */
88 #define EOVERFLOW 65  /* 数值过大,产生溢出 Value too large to be stored in data type. */
89 #define EOWNERDEAD 66 /* 之前的拥有者挂了 Previous owner died. */
90 #define EPERM 67      /* 操作不被允许 Operation not permitted. */
91 #define EPIPE 68      /* 断开的管道 Broken pipe. */
92 #define EPROTO 69     /* 协议错误 Protocol error. */
93 
94 #define EPROTONOSUPPORT 70 /* 协议不被支持 Protocol not supported. */
95 #define EPROTOTYPE 71      /* 对于套接字而言,错误的协议 Protocol wrong type for socket. */
96 #define ERANGE 72          /* 结果过大 Result too large. */
97 #define EROFS 73           /* 只读的文件系统 Read-only file system. */
98 #define ESPIPE 74          /* 错误的寻道.当前文件是pipe,不允许seek请求  Invalid seek. */
99 #define ESRCH 75           /* 没有这样的进程 No such process. */
100 #define ESTALE 76          /* 保留 Reserved. */
101 #define ETIME 77           /* 流式ioctl()超时 Stream ioctl() timeout */
102 #define ETIMEDOUT 78       /* 连接超时 Connection timed out.*/
103 #define ETXTBSY 79         /* 文本文件忙 Text file busy. */
104 
105 #define EWOULDBLOCK 80 /* 操作将被禁止 Operation would block (may be the same value as [EAGAIN]). */
106 #define EXDEV 81       /* 跨设备连接 Cross-device link. */
107 
108     extern int errno;
109 
110 #if defined(__cplusplus)
111 } /* extern "C" */
112 #endif