errno.h 的问题
我正在使用 Rad Hat 8.0,尝试对内核进行更改,并且正处于编译阶段。 我在 include/linux 中有一个标头,我在其中定义了包装函数,并且它们使用 errno。我使用包含 errno.h #include
。 当我尝试编译时,它告诉我“errno.h 没有这样的文件或目录”。当我尝试时 #include
它找到了它,但抱怨我在使用之前没有声明 errno 变量。 我查看了 errno.h,它确实没有声明它,这很令人困惑,因为我的印象是这就是它的定义位置。
我是不是找错地方了?如何使用 errno?
I'm working with Rad Hat 8.0, trying to make changes to the kernel, and I'm at the compilation stage.
I have a header in include/linux where I define wrapper functions, and they use errno. I included errno.h using#include <errno.h>
.
When I try to compile, it tells me "errno.h no such file or directory". When I try#include <linux/errno.h>
it finds it but complains that I did not declare errno the variable before use.
I looked at errno.h and it really doesn't have it declared, which is confusing because I was under the impression that this is where it is defined.
Am I looking in the wrong places? How do I make use of errno?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
对于内核代码,
#include
。errno
的 extern 声明位于#include
中。For kernel code,
#include <linux/errno.h>
.The extern declaration for
errno
is in#include <linux/unistd.h>
.根据此,
当您返回负值时,errno
变量会自动设置。示例:
在这种情况下,用户空间中的返回结果将为
-1
,errno
变量的值为errorcode
。In accordance to this,
errno
variable is set automaticly when you return a negative value.Example:
In this case the returning result in userspace will be
-1
anderrno
variable will have value oferrorcode
.errno 被定义为 extern,
您必须用您的文件编译此文件
errno is defined as an extern in
you have to compile this file with yours