【Linux内核】Linux内核常用错误码

前言

本文章主要描述Linux内核常用错误码,用于查找大概错误类型。

常用错误码

错误码名称含义
0SUCCESS操作成功
-1EPERM操作不允许(Operation not permitted)
-2ENOENT没有那个文件或目录(No such file or directory)
-3ESRCH没有那个进程(No such process)
-4EINTR被信号中断(Interrupted system call)
-5EIO输入/输出错误(Input/output error)
-6ENXIO设备或地址不存在(No such device or address)
-11EAGAIN资源暂时不可用(Resource temporarily unavailable),通常是非阻塞操作
-12ENOMEM内存不足(Out of memory)
-13EACCES权限被拒绝(Permission denied)
-14EFAULT坏地址(Bad address),通常用于指示系统调用或库函数在访问指针时遇到问题,尤其是当指针指向的内存地址无效或不可访问时。
-17EEXIST文件已存在(File exists)
-22EINVAL无效参数(Invaild argument)
-24EMFILE达到进程打开文件数的限制(Too many open files)
-27ENOSPC设备上没有足够的空间(No space left on device)
-30EROFS只读文件系统(Read-only file system)
-38ENOSYS功能未实现(Function not implemented)
-39EFBIG文件过大(File too large)
-95OPNOTSUPP某个操作不被支持

处理错误码

在编程中,处理错误码通常涉及以下步骤:

检查返回值

在调用系统调用或库函数后,检查返回值是否为负数

获取错误码

如果返回值为负数,通常可以使用error变量来获取错误码

输出错误信息

可以使用perror函数或者strerror函数来输出更详细的错误信息

#include <stdio.h>
#include <stdlib.h>
#include <error.h>
#include <string.h>

int main() {
    FILE *file = fopen("test.txt", "r");
    if (!file) {
        // 输出错误信息
        printf("Error opening file: %s\n", strerror(errno));
        return EXIT_FAILURE;
    }
    ...
    fclose(file);
    return EXIT_SUCCESS;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值