linux头文件
⑴ linux系统调用包含什么头文件
一般标准的头文件路径为:
/usr/local/include
/usr/lib/gcc-lib/target/version/include
/usr/target/include
/usr/include
通过
gcc
-v
*.c
看编译时具体过程,里面有头文件搜索路径显示
⑵ linux 下的内核头文件放在哪里
linux下的内核头文件放在/usr/include/linux/和/usr/include/sys/
linux目录树:
scripts目录
该目录中不包含任何核心代码,该目录下存放了用来配置内核的脚本和应用程序源码。
lib目录
该目录主要包含两部分内容:gnuzip解压缩算法,用于在系统启动过程中将压缩的内核镜像解压缩;剩余的文件用于实现一个C库的子集,主要包括字符串和内存操作等相关函数。
mm目录
该目录包含了体系结构无关的内存管理代码,包括通用的分页模型的框架、伙伴算法的实现和对象缓冲器slab的实现代码。
include目录
这个目录包含了Linux源代码目录树中绝大部分头文件,每个体系架构都在该目录下对应一个子目录,该子目录中包含了给定体系结构所必需的宏定义和内联函数。
init目录
该目录中存放的是系统核心初始化代码,内核初始化入口函数start_kernel就是在该目录中的文件main.c内实现的。
kernel目录
该目录中存放的是Linux内核的最核心的代码,用于实现系统的核心模块,这些模块包括:进程管理、进程调度器、中断处理、系统时钟管理、同步机制等。
arch目录
该目录中的每个子目录中都与某种体系结构相对应,用于存放体系结构相关代码,向平台无关的系统核心模块提供所需的功能接口。每个体系结构对应的子目录下通常至少包含以下几个子目录:kernel子目录、lib子目录、mm子目录、boot子目录。
系统次核心组件包括:
block目录:用于实现块设备的基本框架和块设备的I/O调度算法。
usr目录:该目录中的代码为内核尚未完全启动时执行用户空间代码提供了支持
ipc目录:该目录中的文件用于实现System V的进程间通信模块。
driver目录:用于存放各类设备的驱动程序。
sound目录:存放了声音系统架构,如Open Sound System(OSS)、Advanced Linux Sound Architecture(ALSA)的相关代码和具体声卡的设备驱动程序。
security目录:存放了Security-Enhanced Linux(SELinux)安全框架的实现代码
crypto目录:该目录中存放了相关的加密算法的代码。
Documentation目录:存放了与内核相关的文档。
net和fs目录:包含linux内核支持的众多网络协议和文件系统。
⑶ linux下编写c++,include的那些头文件在什么地方
C/C++程序在linux下被编译和连接时,GCC/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径。
1、#include <stdio.h>,直接到系统指定目录去查找头文件。
系统默认路径为:/usr/include,/usr/local/include,/usr/lib/gcc-lib/i386-Linux/2.95.2/include(gcc库文件的路径,各个系统不一致)
2、#include "stidio.h",会先到当前目录查找头文件,如果没找到在到系统指定目录查找。
3、gcc编译时查找头文件,按照以下路径顺序查找:
gcc编译时,可以设置-I选项以指定头文件的搜索路径,如果指定多个路径,则按照顺序依次查找。比如,gcc -I /usr/local/include/node a.c
gcc会查找环境变量C_INCLUDE_PATH,CPLUS_INCLUDE_PATH中指定的路径。
(3)linux头文件扩展阅读:
应用程序代码编译过程:
编译器根据头文件提供的库函数接口形式,来编译代码,然后生成目标文件;然后,再使用链接器将这个目标文件与系统库链接;最终生成应用程序。代码包含了自己写的内容,还有系统提供好的现成的库函数,整个结合起来才形成一个完整的程序。
库函数的头文件,在编译的时候被使用,而库函数的代码段(库文件),在链接的时候被使用。
example:
应用程序代码在使用一个系统调用的时候,例如printf()函数,需要指定包含的头文件stdio.h;另外,在链接的时候对应的链接libc.a(笔者电脑文件所在目录:/usr/lib/i386-linux-gnu/libc.a)。
总结一下,编写应用程序,需要使用linux系统提供的库函数。具体实现起来,需要头文件和库文件。头文件是需要我们编写应用程序的时候,在源文件开头添加的;而库文件则需要配置编译环境进行指定搜索目录。
⑷ linux 头文件
你也说了pfm_set_options这个函数,他包含的头文件里都是.h文件,而pfm_set_options(pfmlib_options_t *opt) 该函数的实现却在一个c文件中
说明头文件里的函数都是在相应的c文件中实现的啊
然后将这个实现的函数放在头文件中,这样把这个头文件包含在其他的c文件中,这样其他的c文件就可以使用这个函数而不怕找不到了
打个比方:你生产了10种游戏(10个函数实现,在.c文件中实现)
然后把这10个游戏的名字写在一张纸上(纸就是.h文件)
最后你就可以拿这张纸给别人 然后告诉那个人:我有这些玩具你想要哪一个就给你哪一个
⑸ Linux内核头文件
#include <linux/mole.h>:模块
#include <linux/kernel.h>:内核
#include <linux/sched.h>:调度器
#include <linux/signal.h>:信号量
#include <linux/errno.h>:里面定义一些“错误”信息
#include <linux/fcntl.h>:file control
#include <linux/spinlock.h>:环行锁,实现临界区的互斥访问
其他的我不是很清楚,你可以去google一下.
⑹ ntohl linux包含哪个头文件
使用man指令,例如驱动中open函数.
$man 2 open
查看终端输出,如下图所示,即为所要包含头文件 命令的详细介绍和使用方法请查看“Linux命令大全”。
⑺ linux系统x下的头文件
版本实现,你不用想了
在LINUX下,写CList程序,要用ANSI C++写,这样才可以在WINDOWS和LINUX下互相移植
这种程序对标准化要求很高,创建工程时,只能用建立空工程手工输入源代码才行,对于创建MFC应用程序,是没有办法移至到LINUX下的
⑻ 请问linux里头文件与库文件有什么区别
头文件中有函数的申明,库文件实现函数的定义。
比如,printf函数。使用时应包括stdio.h,打开stdio.h你只能看到,printf这
个函数的申明,却看不到printf具体是怎么实现的,而函数的实现在相应的C库
中。而库文件一般是以二进制形式而不是C源文件形式提供给用户使用的。程序
中包括了stdio.h这个头文件。链接器就能根据头件中的信息找到printf这个函
数的实现并链接进这个程序代码段里。
总结起来就是,库文件通过头文件向外导出接口。用户通过头文件找到库文件中
函数实现的代码从而把这段代码链接到用户程序中去。
⑼ linux下,C语言头文件在哪
一、 C标准库头文件,以及Linux的标准库文件的对应头文件,默认放在/usr/include下。 如图:
标识出了最常用的几个头文件。
二、 自定义头文件,或者集成头文件,需要在编译的时候指定。可以在命令行中指定,也可以在makefile中指定。
指定自定义头文件路径方式为:
-IPATH1 -IPATH2...
如当前目录下的inc文件夹,指定为头文件, 那么在编译a.c时,可以命令写作:
gcc a.c -I./inc -o a.out
⑽ linux里面查看一个可执行文件使用了哪些头文件
可执行文件里都是机器码加一些调试信息,看不到头文件信息的。
你说的生成包含头文件的列表确实是有,是gcc的选项,‘-M’,必须在编译时给出。比如说你要看temp.c应用了什么头文件,可以如下使用:
$ gcc -M -c temp.c
temp.o: temp.c /usr/include/stdio.h /usr/include/features.h \
/usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \
/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/bits/wchar.h /usr/include/gconv.h \
/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stdarg.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
它还有几个子选项,-MM等,可以自己man gcc看看。