错误代码 - 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 从 指定地址空间获取内容 失败
⚠️ **GitHub.com Fallback** ⚠️