首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >errno.h带来的麻烦

问errno.h带来的麻烦
EN

Stack Overflow用户
提问于 2009-11-12 05:52:53
回答 3查看 1.9K关注 0票数 1

我正在使用Rad Hat 8.0,试图对内核进行更改,我正处于编译阶段。我在include/linux中有一个头文件,其中定义了包装器函数,它们使用errno。我使用#include <errno.h>包含了errno.h。当我尝试编译时,它告诉我"errno.h没有这样的文件或目录“。当我尝试#include <linux/errno.h>时,它找到了它,但它抱怨我在使用之前没有声明变量errno。我查看了errno.h,它确实没有声明它,这让人困惑,因为我的印象是它就是在这里定义的。

我找错地方了吗?如何使用errno?

EN

回答 3

Stack Overflow用户

发布于 2009-11-12 05:59:36

对于内核代码,请参阅#include <linux/errno.h>。

errno的外部声明在#include <linux/unistd.h>中。

票数 2
EN

Stack Overflow用户

发布于 2012-10-04 06:45:36

根据this,当您返回负值时,会自动设置errno变量。

示例

代码语言:javascript
复制
asmlinkage long sys_foo() {
    ...
    if(error)
        return -(errorcode);
    ...
}

在这种情况下,在用户空间中返回的结果将是-1,并且errno变量的值将为errorcode。

票数 1
EN

Stack Overflow用户

发布于 2009-11-12 05:59:14

errno在中定义为extern

代码语言:javascript
复制
/usr/src/lib/linux/errno.c

你必须用你的编译这个文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1718333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档