QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1469|回复: 5

linux下同一个c语言头文件为什么很多目录下都有

[复制链接]
发表于 2003-11-24 11:03:28 | 显示全部楼层 |阅读模式
比如说一般c语言程序都要include一个<stdio.h>,但是我在linux下查了一下,有很多目录下都有名为stdio.h的头文件,而且大小都不一样,显然不是同一个文件。但这些文件之间到底有什么联系呢?一般我们程序包含的为什么是“/usr/include”下的那个stdio.h,而不是其他目录下的stdio.h呢?下面是查找stdio.h得到的结果

名称       目录                   大小
stdio.h    /usr/lib/bcc/include      3.8k
stdio.h    /usr/share/splint/lib     5.0k
stdio.h    /usr/include/bits          5.0k
stdio.h    /usr/include                 22.1k

顺便问一下,通常这些头文件对应的函数实现部分*.c,  linux放在什么地方?是不是放在linux源码目录/usr/src下面
发表于 2003-11-24 11:11:18 | 显示全部楼层
编译器找头文件默认在/usr/include里找,如果/usr/include里找不到就根据编译参数-I指定的路径里找
回复

使用道具 举报

发表于 2003-11-24 11:12:52 | 显示全部楼层
它们的实现在源码包里可以找到,标准C函数一般在glibc源码里
回复

使用道具 举报

 楼主| 发表于 2003-11-24 11:31:50 | 显示全部楼层
那其他目录下的那几个同名的头文件和/usr/include/下的那个头文件之间是什么关系呢?它们之间是不是互相引用?
回复

使用道具 举报

发表于 2003-11-24 12:25:23 | 显示全部楼层
/usr/lib/bcc/include是给bcc编译器用的
/usr/share/splint/lib大概是给splint用的
/usr/include里的stdio.h包含bits/stdio.h,bits里的头文件一般是被其他标准头文件包含,在源码里不能直接包含.
回复

使用道具 举报

 楼主| 发表于 2003-11-24 16:48:32 | 显示全部楼层
谢谢大哥
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-9 10:37 , Processed in 0.059160 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表