har*_*ari 9 linux c header-file
我在 Linux 2.6.32-26-generic
当我查看“ioctl.h”听者文件的 linux 源代码时,我可以看到许多变体。(对于不同的平台,我猜)。IE
./fs/ocfs2/ioctl.h
./fs/btrfs/ioctl.h
./fs/ceph/ioctl.h
./include/config/i2o/config/old/ioctl.h
./include/asm-generic/ioctl.h
./include/linux/hdlc/ioctl.h
./include/linux/ioctl.h
./drivers/video/via/ioctl.h
./drivers/staging/vt6655/ioctl.h
./drivers/staging/vt6656/ioctl.h
./arch/ia64/include/asm/ioctl.h
./arch/h8300/include/asm/ioctl.h
./arch/microblaze/include/asm/ioctl.h
./arch/score/include/asm/ioctl.h
./arch/avr32/include/asm/ioctl.h
./arch/alpha/include/asm/ioctl.h
./arch/x86/include/asm/ioctl.h
./arch/m32r/include/asm/ioctl.h
./arch/mn10300/include/asm/ioctl.h
./arch/sparc/include/asm/ioctl.h
./arch/powerpc/include/asm/ioctl.h
./arch/m68k/include/asm/ioctl.h
./arch/sh/include/asm/ioctl.h
./arch/xtensa/include/asm/ioctl.h
./arch/mips/include/asm/ioctl.h
./arch/s390/include/asm/ioctl.h
./arch/arm/include/asm/ioctl.h
./arch/blackfin/include/asm/ioctl.h
./arch/frv/include/asm/ioctl.h
./arch/parisc/include/asm/ioctl.h
./arch/cris/include/asm/ioctl.h
Run Code Online (Sandbox Code Playgroud)
但我看到该文件被包含为 #include <sys/ioctl.h>
这个映射是如何工作的?
我相信包含的文件是/usr/include/sys/ioctl.h
(不是来自 /usr/src/linux 或某些)。在我的系统上,它属于 glibc,而不是内核或内核头文件。
实际上,内核源代码中没有包含任何内容 - /usr/src/linux(左右)中的头文件仅用于内核编译。如果某些软件需要一些内核头文件来编译,它会使用 in /usr/include/linux
(和其他一些)中的头文件,这些头文件通常是kernel-headers
或之类的软件包的一部分linux-headers
。