错误代码 - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki
Unix代码通过设置u.u_error的方法来向调用函数返回错误代码
定义在user.h
| 错误名 | 值 | 含义 |
|---|---|---|
| EPERM | 1 | 当前用户不是超级用户 |
| ENOENT | 2 |
企图对根目录进行操作 欲添加已存在的目录项,参看namei |
| ESRCH | 3 | 未找到 匹配进程 |
| EINTR | 4 | 系统调用 嵌套错误 |
| EIO | 5 | IO错误 |
| ENXIO | 6 | 设备号越界 |
| E2BIG | 7 | exec 中 参数过长 |
| ENOEXEC | 8 | exec 含义不明... |
| EBADF | 9 | 关于文件结构struct file的错误 |
| ECHILD | 10 | 不存在子进程 |
| EAGAIN | 11 | PROC 表 没有空闲项 |
| ENOMEM | 12 | 没有足够的内存空间 |
| EACCES | 13 | 文件 执行权限 验证错误,参看access |
| ENOTBLK | 15 | INODE 不是 块设备装载INODE,参看文件系统#装载文件系统 |
| EBUSY | 16 |
装载子文件系统 抛出错误,参看smount 内存INODE表中存在对应于待卸载文件系统的inode,无法卸载 参看sumount |
| EEXIST | 17 | 欲创建的目录项 已经存在 |
| EXDEV | 18 | 文件别名 跨越 设备 |
| ENODEV | 19 | 无效设备函数 |
| ENOTDIR | 20 | 目录搜索时匹配的并不是目录项 |
| EISDIR | 21 | 写文件时INODE为目录INODE,见open1 |
| EINVAL | 22 |
找不到当前装载文件系统对应的装载块,参看sumount 信号类型号非法,参看ssig |
| ENFILE | 23 |
INODE数组用尽 file数组用尽 |
| EMFILE | 24 | u_ofile数组用尽 |
| ENOTTY | 25 | 指定的tty设备装载文件 不是 字符设备装载文件 |
| ETXTBSY | 26 | 尝试修改 作为程序正文的文件 |
| EFBIG | 27 | 文件块号越界 |
| ENOSPC | 28 |
磁盘空间用尽 INODE区用尽 |
| ESPIPE | 29 | 管道文件,无法seek,参看seek |
| EROFS | 30 | 尝试写 只读的文件系统 |
| EMLINK | 31 | 文件勾连数 超过限制 |
| EPIPE | 32 | 管道错误 |
| EFAULT | 106 | 从 指定地址空间获取内容 失败 |