Jef*_*eff 12 linux fedora header-file
嗯,显然有区别,但我很好奇为什么有些东西在 /usr/include/sys 下而其他东西在 /usr/include/linux 下,并且具有相同的头文件名?这与 POSIX vx non-POSIX 有关系吗?
此外,我已经通过获取内核头文件包设法在我的 Fedora 系统上使用头文件填充 /usr/include/linux,是否有一个标准的包名称让我获取位于 /usr/include/sys 下的头文件? 我一直无法找到它。
Gil*_*il' 14
下面/usr/include/linux
和下面的头文件/usr/include/asm*
随Linux内核一起分发。其他头文件(/usr/include/sys/*.h
、/usr/include/bits/*.h
等)随 C 库(GNU C 库,也称为 glibc,在所有非嵌入式 Linux 系统上)一起分发。glibc 手册中有一点解释。
请注意,/usr/include/linux
并且/usr/include/asm
应该包含编译 C 库时使用的头文件,而不是来自正在运行的内核的头文件。否则,如果某些常量或数据结构发生变化,编译后的程序和C库之间就会出现不一致,很可能导致崩溃或更糟。(如果头文件与 C 库匹配但 C 库与内核不匹配,那么实际发生的情况是内核旨在保持稳定的 ABI,并且必须检测到它在不同的 ABI 下被调用并相应地解释系统调用参数。无论如何,内核必须为静态编译的程序执行此操作。)
我记得一段时间(十年?)前 Debian 和 Red Hat 就这个/usr/include/linux
问题展开了激烈的辩论;显然每一方都在坚持自己的立场。(据我了解,Debian 是对的,如上所述。)Debian 目前分发/usr/include/linux
的linux-libc-dev
软件包中的朋友,该软件包是从内核源代码编译的,但未随内核一起升级。内核头文件位于提供linux-headers-2.6
元包的特定版本包中;这是为特定内核版本编译模块所需要的。
您正在寻找的包是 C 库头文件。我不知道它叫什么,但你可以通过yum provides /usr/include/sys/types.h
.
归档时间: |
|
查看次数: |
6163 次 |
最近记录: |