LDD学习笔记 -- Linux错误码

错误码,常被称为errno值(用户空间全局变量),被定义在<errno.h>头文件中。
系统调用和库函数使用这些错误代码指示程序执行期间可能发生的各种错误情况。
错误码会从内核空间传到用户空间,用户空间的errno会被设置称内核模块返回的错误值,用户程序以确定内核空间的系统调用处理发生的错误。
<kernel source>/include/uapi/asm-generic/errno-base.h文件中具体错误码的定义

EACCES(Permission Denied) 13

没有权限。
例如没有访问文件/资源等特定操作的权限

EEXIST(File Exits) 17

当一个文件/目录已存在,尝试使用相同名称创建操作时返回

EINVAL(Invalid Argument) 22

传递给系统调用或函数的参数无效

ENOENT(No Such File or Directory)

被引用的文件/目录在文件系统中不存在

ENOMEM(Out of Memory)

系统可用内存不足导致操作失败

EIO(Input/Output Error) 5

指示硬件/低级I/O错误,通常与存储设备或硬件通信有关

ENOSPC(No space Left on Device)

存储设备上没有可用空间执行写操作

ENOTTY(Not a Typewrite)

终端设备上不支持某个操作,通常用于和ioctl相关的错误

EPIPE(Broken Pipe)

Pip,试图写入没有读取器的管道,或管道写入操作失败

EINTR(Interrupted System Call)

系统调用在成功完成前被信号中断

EBUSY(Device or Resource Busy) 16

请求的设备或资源已被另一个进程使用

ENOTDIR(Not a Directory) 20

不是个目录

ENOTEMPTY(Directory Not Empty)

尝试删除非空目录时返回

ENAMETOOLONG(File name too long)

ENOSYS(Function Not Implement)

在当前平台或内核版本上没有实现函数或系统调用

EROFS(Read-Only File System)

尝试写入只读文件系统时返回

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值