- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
unistd_64 作为我的理解(有很多限制)包含系统调用号。当我从终端搜索文件时,它在不同目录下显示多个结果,如下所示:
我不明白这些文件的区别和每个文件的用途。而3号文件有.cmd,是什么意思?
最佳答案
如果您正在编写需要知道系统调用号的普通 C 程序,则不应使用任何这些 header 。相反,您应该使用 <sys/syscall.h>
.你的 C 程序不需要知道这个头文件的完整路径名; #include <sys/syscall.h>
是所有必要的。但是,如果您想阅读它,可以在 /usr/include
中找到它。 , 可能是 /usr/include/sys/syscall.h
或 /usr/include/x86_64-linux-gnu/sys/syscall.h
.
现在,我将解释您找到的文件:
/usr/include/x86_64-linux-gnu/asm/unistd_64.h
: 这是一个头文件,可由 sys/syscall.h
在内部使用.您可以阅读它,但不要将其直接包含在您的程序中。它可能定义了一大堆以 __NR_
开头的名称.这些名称永远不应该在普通的“用户空间”程序中使用:始终使用以 SYS_
开头的名称相反。
/usr/src/linux-headers-3.5.0-23/arch/sh/include/asm/unistd_64.h
和 /usr/src/linux-headers-3.5.0-23-generic/arch/x86/include/generated/asm/unistd_64.h
:这些是私有(private)内核头文件。它们的存在是为了人们试图构建与内核本身分开开发的内核模块。有可能其中之一在文本上与 /usr/include/x86_64-linux-gnu/asm/unistd_64
相同但这不是您应该依赖的东西。
/usr/src/linux-headers-3.5.0-23-generic/arch/x86/include/generated/ asm/.unistd_64.h.cmd
: 这根本不是头文件,它被Linux内核的构建系统使用。
关于c - Ubuntu 中的 unistd_64.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48468677/
我是一名优秀的程序员,十分优秀!