linux头文件

linux头文件
linux头文件

linux-2.6.30-4内核头文件

1、/linux-2.6.30.4/arch/arm/include/asm/

1.1、--->对应__raw__write()和__raw__read()等的使用

1.2、---->/*copy_to_user,copy_from_user*/

1.3、:系统头文件,定义了设置或修改描述符/中断门等的嵌入式汇编宏。

2、/linux-2.6.30.4/inlude/linux/-->在这个文件夹里面有很多我们平常使用的头文件:

2.1、-->对应于模块的使用,写驱动的时候,这个一定要加上

2.2、--->对应于各种符号类型的使用,如ssize_t,size_t等

2.3、---->对应于各种错误信息的使用,如EINTR、EFAULT等

2.4、------->对应于/*file_operation*/的使用

2.5、--->对应于printk等的使用

2.6、/*__init__exit*/

2.7、-->执行对内存区域的操作de头文件

2.8、------>//request_irq

2.9、--->cdev_init()、cdev_add()等注册函数的使用

2.10------->调度程序头文件,定义了任务结构task_struct,说白了就是进程

3、头文件主目录include

头文件目录中总共有32个.h头文件。其中主目录下有13个,asm子目录中有4个,linux子目录中有10个,sys子目录中有5个。

:a.out头文件,定义了a.out执行文件格式和一些宏。

:常数符号头文件,目前仅定义了i节点中i_mode字段的各标志位。

:字符类型头文件,定义了一些有关字符类型判断和转换的宏。

:错误号头文件,包含系统中各种出错号。(Linus从minix中引进的)。

:文件控制头文件,用于文件及其描述符的操作控制常数符号的定义。

:信号头文件,定义信号符号常量,信号结构以及信号操作函数原型。

:标准参数头文件,以宏的形式定义变量参数列表。主要说明了一个类型(va_list)和3个宏(va_start,va_arg和va_end),用于vsprintf、vprintf、vfprintf函数。

:标准定义头文件,定义了NULL,offsetof(TYPE,MEMBER)。

:字符串头文件,主要定义了一些有关字符串操作的嵌入函数。

:终端输入输出函数头文件,主要定义控制异步通信口的终端接口。

:时间类型头文件,主要定义了tm结构和一些有关时间的函数原形。

:Linux标准头文件,定义了各种符号常数和类型,并声明了各种函数。如,定义了__LIBRARY__,则还包括系统调用号和内嵌汇编_syscall0()等。

:用户时间头文件,定义了访问和修改时间结构以及utime()原型。

3.1体系结构相关头文件子目录include/asm

这些头文件主要定义了一些与CPU体系结构密切相关的数据结构、宏函数和变量。共4个文件。

:I/O头文件,以宏的嵌入汇编程序形式定义对I/O端口操作的函数。

:内存拷贝头文件,含有memcpy()嵌入式汇编宏函数。

:段操作头文件,定义了有关段寄存器操作的嵌入式汇编函数。

:系统头文件,定义了设置或修改描述符/中断门等的嵌入式汇编宏。3.2、Linux内核专用头文件子目录include/linux

:内核配置头文件,定义键盘语言和硬盘类型(HD_TYPE)可选项。

:软驱头文件,含有软盘控制器参数的一些定义。

:文件系统头文件,定义文件表结构(file,buffer_head,m_inode等)。

:硬盘参数头文件,定义访问硬盘寄存器端口、状态码和分区表等信息。:head头文件,定义了段描述符的简单结构,和几个选择符常量。

:内核头文件,含有一些内核常用函数的原形定义。

:内存管理头文件,含有页面大小定义和一些页面释放函数原型。

:调度程序头文件,定义了任务结构task_struct、初始任务0的数据,

以及一些有关描述符参数设置和获取的嵌入式汇编函数宏语句。

:系统调用头文件,含有72个系统调用C函数处理程序,以"sys_"开头。

:tty头文件,定义了有关tty_io,串行通信方面的参数、常数。

3.3、系统专用数据结构子目录include/sys

:文件状态头文件,含有文件或文件系统状态结构stat{}和常量。

:定义了进程中运行时间结构tms以及times()函数原型。

:类型头文件,定义了基本的系统数据类型。

:系统名称结构头文件。

:等待调用头文件,定义系统调用wait()和waitpid()及相关常数符号。

linux 下各个头文件的作用

linux 下各个头文件的作用 2.6.30.4的头文件的位置和2.6.25.8的不一样,除去内核源码下的include目录外, 在arch/arm/mach-s3c2410/和arch/arm/plat-s3c24xx/目录下都有include目录的。 #include /* printk() */// #include /* kmalloc() */// #include /* file_operations、 inode_operations、super_operations结构体*/// #include /* error codes */ #include /* size_t等各种系统typedef的数据类型 */// #include /* O_ACCMODE */// #include /* COPY_TO_USER */#include /*MODULE_LICENSE("GPL");内核认识的特定许可有, "GPL"( 适用 GNU 通用公共许可的任何版本 ), "GPL v2"( 只适用 GPL 版 本 2 ), "GPL and additional rights", "Dual BSD/GPL", "Dual MPL/GPL", "Proprietary". 除非你的模块明确标识是在内核认识的一个自由许可下, 否则就假定它是私有的, 内核在模块加载时被"弄污浊"了. 象我们在第 1 章"许可条款"中提到的, 内核开发者不会热心帮助在加载了私有模块后遇到问题的用户. MODULE_AUTHOR ( 声明谁编写了模

LINUX内核源文件介绍以及头文件介绍

LINUX 内核源文件介绍以及头文件介绍 LINUX 内核源文件介绍以及头文件介绍.txt两人之间的感情就像织毛衣,建立的时候一针一线,小心而漫长,拆除的时候只要轻轻一拉。。。。*******************LINUX 内核(0.11)源文件介绍****************** 1、内核源文件放置目录: | |————boot 系统引导汇编程序目录 | |————fs 文件系统目录 | |————include 头文件目录 | |————init 内核初始化程序目录 | |————kernel 内存进程调度、信号处理、系统调用等程序的目录 | |————lib 内核库函数目录 | |————mm 内存管理程序目录 | |————tools 生成内核Image文件的工具程序目录 | |————Makefile文件 | 2、引导启动程序目录boot 包含3个汇编语言文件,是内核源文件中最先被编译的程序。 功能:当计算机家电时引导内核启动,将内核代码加载到内存中,并完成系统初始化工作。 boot | |————bootsect.s 磁盘引导块程序,编译后会驻留在磁盘的第一个扇区中| |————setup.s 读取机器的硬件配置参数,并把内核模式system移动到适当的内存位置处 |

|————head.s 会被编译连接在system模块的最前部分,主要进行硬件设备的探测配置和内存管理页面的配置工作 | 3、文件系统目录fs 包含17个C语言程序 fs | |——buffer.c 管理高速缓冲区 | |——file_table.c 在0.11仅定义了一个文件句柄(描述符)结构数组 | |——ioctl.c 将引用kernel/chr_dev/tty.c中的函数,实现字符设备的IO 控制功能 | |——exec.c 主要包含一个执行程序函数do_execve() | |——fcntl.c 实现文件I/O控制的系统调用函数 | |——read_write.c 实现文件读/写和定位的三个系统调用函数 | |——stat.c 实现了两个获取文件状态的系统调用函数 | |——open.c 主要包含实现修改文件属性和创建与关闭文件的系统调用函数 | |——char_dev.c 主要包含字符设备读写函数rw_char() | |——pipe.c 包含管道读写函数和创建管道的系统调用函数 | |——file_dev.c 包含基于i节点和描述符结构的文件读写函数。 | |——namei.c 主要包括文件系统中目录名和文件名的操作函数和系统调用函数 | |——block_dev.c 包含块数据读和写函数 | |——inode.c 包含针对文件系统i节点操作的函数 | |——truncate.c 用于在删除文件时释放文件所占用的设备数据空间 | |——bitmap.c 用于处理文件系统中i节点和逻辑数据块的位图 |

linux下C编程详解

1)Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件和系统求助 ---------------------------------------------------------------------------- ---- 1.源程序的编译 在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器. 假设我们有下面一个非常简单的源程序(hello.c): int main(int argc,char **argv) { printf("Hello Linux "); } 要编译这个程序,我们只要在命令行下执行: gcc -o hello hello.c gcc 编译器就会为我们生成一个hello的可执行文件.执行./hello就可以看到程序的输出结果了.命令行中gcc表示我们是用gcc来编译我们的源程序,-o 选项表示我们要求编译器给我们输出的可执行文件名为hello 而hello.c是我们的源程序文件. gcc编译器有许多选项,一般来说我们只要知道其中的几个就够了. -o选项我们已经知道了,表示我们要求输出的可执行文件名. -c选项表示我们只要求编译器输出目标代码,而不必要输出可执行文件. -g选项表示我们要求编译器在编译的时候提供我们以后对程序进行调试的信息. 知道了这三个选项,我们就可以编译我们自己所写的简单的源程序了,如果你想要知道更多的选项,可以查看gcc的帮助文档,那里有着许多对其它选项的详细说明. 2.Makefile的编写 假设我们有下面这样的一个程序,源代码如下: /* main.c */ #include "mytool1.h" #include "mytool2.h" int main(int argc,char **argv) { mytool1_print("hello"); mytool2_print("hello"); } /* mytool1.h */ #ifndef _MYTOOL_1_H #define _MYTOOL_1_H

linux下socket编程常用头文件

linux下socket编程常用头文件 sys/types.h:数据类型定义 sys/socket.h:提供socket函数及数据结构 netinet/in.h:定义数据结构sockaddr_in arpa/inet.h:提供IP地址转换函数 netdb.h:提供设置及获取域名的函数 sys/ioctl.h:提供对I/O控制的函数 sys/poll.h:提供socket等待测试机制的函数 其他在网络程序中常见的头文件 unistd.h:提供通用的文件、目录、程序及进程操作的函数 errno.h:提供错误号errno的定义,用于错误处理 fcntl.h:提供对文件控制的函数 time.h:提供有关时间的函数 crypt.h:提供使用DES加密算法的加密函数 pwd.h:提供对/etc/passwd文件访问的函数 shadow.h:提供对/etc/shadow文件访问的函数 pthread.h:提供多线程操作的函数 signal.h:提供对信号操作的函数 sys/wait.h、sys/ipc.h、sys/shm.h:提供进程等待、进程间通讯(IPC)及共享内存的函数 建议:在编写网络程序时,可以直接使用下面这段头文件代码 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

Linux环境常用库简介

Linux环境常用库简介 一个程序的开发离不开许多库函数的支持,可是库如此之多,有开源免费的也有收费的。很希望熟悉编程的前辈把自己的经验整理下,常用的库都包含哪些功能。下文是在网上找的一个类似的资料。期待更多更全的内容。 --------------------------------------------------------------------------------------------------- 看到有时候大家在写代码的时候不知道应该加入何种库,所以特地总结了一下.供大家参考. 库头文件描述 libGL.so 实现到OpenGL API的接口 libGLU.so 实现到OpenGL API的接口 libImlib.so 实现一套图像处理例程 libc.so 实现标准C库(不需要头文件) libcom_err.so 实现出错处理例程的集合 libcrypt.so 实现加密函数的集合 libcurses.so 光标字符模式的屏幕操作库 libdb.so 创建和操作数据库的库 libdl.so 让程序在运行时加载和使用库代码而无须在编译时链接库 libform.so 实现字符模式应用程序的窗体处理能力 libglib.so Glib库,提供了大多数程序需要的大量基本工具函数,比如散列表等 libgthread.so 实现对Glib的线程支持 libgtk.so GIMP下的X库 libhistory.so 实现GNU readline(libreadline)包中的命令行历史机制 libjpeg.so 定义到JPEG库的接口,赋予应用程序使用JPEG图像文件的能力 libm.so 实现标准C数学库 libmenu.so 提供在字符模式屏幕上创建和使用菜单的例程 libncurses.so 使用ncurses文本模式屏幕控制系统的应用程序的基础库 libnss.so 用于名字服务切换工具的功能,提供了名字数据库比如DNS接口

Linux中常用头文件的作用

Linux中常用头文件的作用 1、Linux中一些头文件的作用: :ANSI C。提供断言,assert(表达式) :GCC。GTK,GNOME的基础库,提供很多有用的函数,如有数据结构操作函数。使用glib只需要包含 :GCC。文件夹操作函数。struct dirent,struct DIR,opendir(),closedir(),readdir(),readdir64()等 :ANSI C。字符测试函数。isdigit(),islower()等 :ANSI C。查看错误代码errno是调试程序的一个重要方法。当linuc C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决了不少原本看来莫名其妙的问题。比较麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了。来自linux 2.4.20-18的内核代码中的/usr/include/asm/errno.h :处理命令行参数。getopt() 2、 ------------------------- linux常用头文件如下: POSIX标准定义的头文件 目录项 文件控制 文件名匹配类型 路径名模式匹配类型 组文件 网络数据库操作 口令文件 正则表达式 TAR归档值 终端I/O 符号常量 文件时间 字符扩展类型 ------------------------- INTERNET定义 套接字本地接口 INTERNET地址族 传输控制协议定义 ------------------------- 内存管理声明 Select函数 套接字借口 文件状态 进程时间

linux下各文件夹的结构说明及用途详细介绍解析

linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令。 /dev:设备特殊文件。 /etc:系统管理和配置文件。 /etc/rc.d:启动的配置文件和脚本。 /home:用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user 表示。 /lib:标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件。 /sbin:系统管理命令,这里存放的是系统管理员使用的管理程序。 /tmp:公用的临时文件存储点。 /root:系统管理员的主目录。 /mnt:系统提供这个目录是让用户临时挂载其他的文件系统。 /lost+found:这个目录平时是空的,系统非正常关机而留下“无家可归”的文件就在这里。 /proc:虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。 /var:某些大文件的溢出区,比方说各种服务的日志文件。 /usr:最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含: /usr/x11r6:存放x window的目录。 /usr/bin:众多的应用程序。

/usr/sbin:超级用户的一些管理程序。 /usr/doc:linux文档。 /usr/include:linux下开发和编译应用程序所需要的头文件。 /usr/lib:常用的动态链接库和软件包的配置文件。 /usr/man:帮助文档。 /usr/src:源代码,linux内核的源代码就放在/usr/src/linux 里。 /usr/local/bin:本地增加的命令。 /usr/local/lib:本地增加的库根文件系统。 通常情况下,根文件系统所占空间一般应该比较小,因为其中的绝大部分文件都不需要经常改动,而且包括严格的文件和一个小的不经常改变的文件系统不容易损坏。除了可能的一个叫/vmlinuz标准的系统引导映像之外,根目录一般不含任何文件。所有其他文件在根文件系统的子目录中。 1. /bin目录 /bin目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后。这些命令都是二进制文件的可执行程序(bin是binary的简称,多是系统中重要的系统文件。 2. /sbin目录 /sbin目录类似/bin,也用于存储二进制文件。因为其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用。 3. /etc目录

linux驱动程序相关头文件简单介绍

LED驱动程序相关头文件简单介绍 分类:linux驱动开发2011-10-25 21:53 3455人阅读评论(1) 收藏举报cstructoutputmoduletypesfile [cpp]view plaincopy 在解读OK6410官方提供的LED驱动程序源码的过程中,发现很多没见过的宏和函数。例如S3C64XX_GPM(0)、 S3C64XX_GPM_OUTPUT(0)、__raw_writel(tmp,S3C64XX_GPMPUD)、__raw_writel(tmp,S3C64XX_GPMCON)等。而这些都包含在一些头文件里面。另一方面,我们自己动手编写LED的驱动程序也必须知道相关的头文件有哪些,对我们有哪些用。因此,我觉得在自己动手编写LED驱动程序之前对相关头文件进行简单的分析是非常有必要的。以下是我自己结合源码分析得出的一些结论,如有不正确的地方,希望能够得到指正。 OK6410官方提供的LED驱动程序源码: [cpp]view plaincopy

一、模块相关头文件: 1、#include :在编写任何模块都需要包含此头文件。该头文件自动包含了头文件,该头文件包含了宏MODULE_LICENSE("GPL")的定义。 2、#include :此头文件也是必须的,module_init()与module_exit()宏就是定义在它里面的。而且正是这个头文件定义了初始化函数加__init和推出函数加__exit的作用(static int __init s3c6410_leds_init(void)和static void __exit s3c6410_leds_exit(void)) 3、#include :此头文件也是常用头文件,如果需要使用printk函数,则必须包含此头文件。另外该头文件还包含了头文件,而这个头文件定义许多常用的数据类型,其中就包括设备号类型dev_t。如下: [cpp]view plaincopy

Linux下C和C++常用头文件

Linux下C和C++常用头文件 linux下编程常用头文件一览 ========================================= 验证程序断言 cpio归档值 字符类型 目录项 出错码 文件控制 浮点常数 信号 可变参数表 标准定义 标准I/O库 公用函数 字符串操作 tar归档值 终端I/O 时间和日期 用户限制 符号常数 文件时间 IPC 消息队列 信号量 共享存储 文件状态 进程时间 原系统数据类型 进程控制 C/C++头文件一览 ========================================= ========================================= =========== C、传统C++ #include //设定插入点 #include //字符处理 #include //定义错误码 #include //浮点数处理 #include //文件输入/输出 #include //参数化输入/输出#include //数据流输入/输出#include //定义各种数据类型最值常量#include //定义本地化函数 #include //定义数学函数 #include //定义输入/输出函数#include //定义杂项函数及内存分配函数 #include //字符串处理 #include //基于数组的输入/输出#include //定义关于时间的函数#include //宽字符处理及输入/输出#include //宽字符分类 ========================================= 标准C++(同上的不再注释) #include //STL 通用算法 #include //STL 位集容器 #include //字符处理 #include //定义错误码 #include //定义本地化函数 #include //定义数学函数 #include //复数类 #include //标准I/O库 #include //定义杂项函数及内存分配函数 #include //字符串处理 #include //定义关于时间的函数#include //STL 双端队列容器#include //异常处理类 #include //文件输入/输出 #include //STL 定义运算函数(代替运算符) #include #include //STL 线性列表容器#include //STL 映射容器 #include #include //基本输入/输出支持#include //输入/输出系统使用的前置声明 #include //数据流输入/输出#include //基本输入流 #include //基本输出流 #include //STL 队列容器 #include //STL 集合容器 #include //基于字符串的流#include //STL 堆栈容器 #include //标准异常类 #include //底层输入/输出支持#include //字符串类 #include //STL 通用模板类 #include //STL 动态数组容器

Linux内核头文件(linux headers)

更新 Linux 内核头文件(linux headers)
三 8th, 2013 2,474 views | 发表评论 | Trackback 一般来说,如果不是自己编译 kernel,那么更新头文件是比较容易的事情,在 Ubuntu/Fedora 等操作系 统上,可以直接安装相应的 linux-headers 软件包,下面就演示了在 Ubuntu 上安装内核头文件的过程。
View Code BASH
1 2 3 4 5 6 7 8 9 master@jay-intel:~/workspace/c-study$ uname -r 3.2.0-33-generic master@jay-intel:~/workspace/c-study$ apt-get install linux-headers-$(uname -r) Reading package lists... Done Building dependency tree Reading state information... Done linux-headers-3.2.0-33-generic is already the newest version. linux-headers-3.2.0-33-generic set to manually installed. 0 upgraded, 0 newly installed, 0 to remove and 331 not upgraded.
然而,如果自己编译 Linux kernel 并用它启动了系统,然后为了让本地程序基于当前 kernel 的 headers 来编译,就需要自己手动更新内核的头文件了。手动更新 linux headers 的步骤如下: 1. 在 Linux kernel 目录中,执行“make headers_install”命令,将 headers 安装到当前目录的 usr/include/下面。 2. 将以前的 headers 备份:包括/usr/include/目录下的 asm,asm-generic,linux 等目录。 3. 将刚才生成的当前编译内核目录下的 usr/include/中的 asm,asm-generic,linux 等目录复制到 /usr/include/目录下即可。 (当然如果还需要更新其他的目录的头文件,也都可以一起复制过去。) 操作演示如下:
View Code BASH
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [root@jay-linux kvm.git]# make headers_install CHK WRAP include/generated/uapi/linux/version.h arch/x86/include/generated/asm/clkdev.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_64.h SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_x32.h SYSTBL arch/x86/syscalls/../include/generated/asm/syscalls_32.h SYSHDR arch/x86/syscalls/../include/generated/asm/unistd_32_ia32.h SYSHDR arch/x86/syscalls/../include/generated/asm/unistd_64_x32.h SYSTBL arch/x86/syscalls/../include/generated/asm/syscalls_64.h HOSTCC arch/x86/tools/relocs HOSTCC scripts/unifdef INSTALL include/asm-generic (35 files) INSTALL include/drm (15 files) INSTALL include/linux/byteorder (2 files) INSTALL include/linux/caif (2 files) INSTALL include/linux/can (5 files)

Linux常用命令大全

Linux常用命令大全 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件- (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验内存使用 cat /proc/swaps 显示哪些swap被使用 cat /proc/version 显示内核的版本 cat /proc/net/dev 显示网络适配器及统计 cat /proc/mounts 显示已加载的文件系统 lspci -tv 罗列PCI 设备 lsusb -tv 显示USB 设备 date 显示系统日期 cal 2007 显示2007年的日历表 date 0412********.00 设置日期和时间- 月日时分年.秒clock -w 将时间修改保存到BIOS 关机(系统的关机、重启以及登出) shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minutes & 按预定时间关闭系统shutdown -c 取消按预定时间关闭系统 shutdown -r now 重启(1) reboot 重启(2) logout 注销 文件和目录 cd /home 进入'/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件

linux C头文件

1、Linux中一些头文件的作用: :ANSI C。提供断言,assert(表达式) :GCC。GTK,GNOME的基础库,提供很多有用的函数,如有数据结构操作函数。使用gl ib只需要包含 :GCC。文件夹操作函数。struct dirent,struct DIR,opendir(),closedir(),readdir(),readdir6 4()等 :ANSI C。字符测试函数。isdigit(),islower()等 :ANSI C。查看错误代码errno是调试程序的一个重要方法。当linuc C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决了不少原本看来莫名其妙的问题。比较麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了。来自linux 2.4.20-18的内核代码中的/usr/include/asm/errno.h :处理命令行参数。getopt() 2、 ------------------------- linux常用头文件如下: POSIX标准定义的头文件 目录项 文件控制 文件名匹配类型 路径名模式匹配类型 组文件 网络数据库操作 口令文件 正则表达式 TAR归档值 终端I/O 符号常量wrait read 标准输入输出 文件时间

Linux常用API总结

Linux常用API 1、open() 头文件:#include 函数原型:int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_ t mode); 函数说明:flags打开文件方式 mode创建文件夹的权限 返回值:成功返回文件描述符,失败返回-1 2、close() 头文件:#include 函数原型:int close(int fd); 返回值:成功返回0,失败返回-1. 3、read() 头文件:#include 函数原型:size_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,返回0则读取结束。 4、write() 头文件:#include 函数原型:size_t write(int fd, const void *buf, size_t count); 返回值:成功返回写入的字节数,失败返回-1。

5、ioctl() 头文件:#include 函数原型:int ioctl(int fd, int request); 函数说明:ioctl()提供了一个用于控制设备及其描述符的和配置底层服务的接口。 返回值:成功返回0,失败返回-1。 6、fork() 头文件:#include 函数原型:pid_t fork(); 返回值:成功,父进程返回子进程pid,子进程返回0,失败-1。 7、getpid() 头文件:#include 函数原型:pid_t getpid(); 函数说明:获得调用进程的ID。 8、getppid() 头文件:#include 函数原型:pid_t getppid(); 函数说明:获得父进程的ID。 9、exit() 头文件:#include 函数原型:void exit(int status); 10、_exit()

Linux C 一些函数 所属的头文件

Linux C 一些函数所属的头文件 在编写程序时,有时总是不记得所使用的函数在哪个库函数中。现在先把自己以前经常用到的函数头文件总结一下。有不对的地方还请指教。 1,系统调用文件的操作函数 #inlclude int open(char *name,int how) 第二个参数,O_RDONLY O_WRONL Y O_RDWR O_CREAT #include int close(int fd) size_t read(int fd,void *buf, size_t count) size_t write(int fd,const void *buf,size_t count) sleep(1) 系统睡眠一秒钟,最小单位为一秒。 #define msleep(x) usleep(x*1000) msleep(500); 系统睡眠0.5秒 #include perror("会出现错误的函数名") #include char *strerror(int errnum) 依据错误代码errnum来查找错误原因字符串 char *strcpy(char *dest,const char *src) int strcmp(char *s1,const char *s2) s1若等于s2的值则返回0值 int strncmp(char *s1,const char *s2,int n) 前n个字符串比较 2,进程控制函数 #include pid_t fork(void) 子进程中返回0 父进程中返回子进程ID 出错返回-1 pid_t getpid(void) pid_t getppid(void) pid_t vfork(void) exec函数族 进程pid 的类型为pid_t 类型,它包含于#include 若定义一个进程pid变量,则需要包含此头文件 exit(n)结束进程父进程可以由wait函数来获得子进程结束装状态。 在进程结束的时候,会关闭文件描述符号,做一些清理工作,只保留进程返回状态等信息调用exit(),子进程会关闭所有打开的进程描述符exit会作清理工作,比如说,释放内存(在C++里面会主动的调用析构函数,),关闭文件句柄的工作,包括刷新IO流。 _exit(n)直接退出,不会做一些清理工作,也不会关闭文件描述符。 #include pid_t wait(int *status) 等待任意子进程结束。子进程结束状态值由status返回。 如WEXITSTATUS(status) 可以获得exit(2)中返回的值,status=2,这样就可以知道所等待的为哪个进程。如果不用这个宏转换,则status=512.

Linux 用户态和内核态头文件

Linux内核头文件 #include :最基本的,内核初始化 #include :最基本的文件,支持动态添加和卸载模块。Hello World驱动要这一个文件就可以了 #include:内核头文件,含有一些内核常用函数的原形定义。 #include:内核配置头文件,定义键盘语言和硬盘类型(HD_TYPE)可选项。 #include:软驱头文件,含有软盘控制器参数的一些定义。 #include:文件系统头文件,定义文件表结构(file,buffer_head,m_inode 等)。 #include:硬盘参数头文件,定义访问硬盘寄存器端口、状态码和分区表等信息。 #include:head头文件,定义了段描述符的简单结构,和几个选择符常量。#include:内存管理头文件,含有页面大小定义和一些页面释放函数原型。#include:调度程序头文件,定义了任务结构task_struct、初始任务0的数据, 以及一些有关描述符参数设置和获取的嵌入式汇编函数宏语句。 #include:系统调用头文件,含有72个系统调用C函数处理程序,以"sys_"开头。 #include:tty头文件,定义了有关tty_io,串行通信方面的参数、常数。#include :相关头文件//内核等待队列,它包含了自旋锁的头文件 #include :包含了对返回值的宏定义,这样用户程序可以用perror输出错误信息。 #include :对一些特殊类型的定义,例如dev_t, off_t, pid_t.其实这些类型大部分都是unsigned int型通过一连串的typedef变过来的,只是为了方便阅读。#include :对字符设备结构cdev以及一系列的操作函数的定义。//包含了cdev 结构及相关函数的定义。 #include :包含了kcalloc、kzalloc内存分配函数的定义。 #include :包含了copy_to_user、copy_from_user等内核访问用户进程内存地址的函数定义。 #include :包含了device、class 等结构的定义 #include :包含了miscdevice结构的定义及相关的操作函数。 #include :使用中断必须的头文件 #include :自旋锁 #include :内核定时器 #include :中断处理 用户态常用头文件 :定义文件的输入和输出 定义杂项函数和内存分配函数 数学函数 :a.out头文件,定义了a.out执行文件格式和一些宏。 :常数符号头文件,目前仅定义了i节点中i_mode字段的各标志位。

linux 头文件、库文件查找顺序

linux 头文件、库文件查找顺序 默认分类 2009-11-14 01:24:28 阅读126 评论0 字号:大中小 linux 头文件、库文件查找顺序 2009-11-03 12:36 Include的header文件,连结数据库,系统定义,总共有下列来源指定gcc去那找。 当初在编译时指定的(在~gcc/gcc/collect2.c:locatelib() 写在specs内的 后来用-D -I -L指定的 gcc环境变量设定(编译的时候) ld.so的环境变量(这是run time的时候) 一、头文件 gcc 在编译时如何去寻找所需要的头文件: ※所以header file的搜寻会从-I开始 ※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH ※再找内定目录 /usr/include /usr/local/include /usr/lib/gcc-lib/i386-linux/2.95.2/include /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g -3 /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include 库文件但是如果装gcc的时候,是有给定的prefix的话,那么就是 /usr/include prefix/include

prefix/xxx-xxx-xxx-gnulibc/include prefix/lib/gcc-lib/xxxx-xxx-xxx-gnulibc/2.8.1/include 二、库文件 cos()等函式库的选项要多加 -lm 编译的时候: ※gcc会去找-L ※再找gcc的环境变量LIBRARY_PATH ※再找内定目录 /lib /usr/lib /usr/local/lib 这是当初compile gcc时写在程序内的 三、运行时动态库的搜索路径 1、在配置文件/etc/ld.so.conf中指定动态库搜索路径 2、通过环境变量LD_LIBRARY_PATH指定动态库搜索路径(当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号":"分隔) 3、在编译目标代码时指定该程序的动态库搜索路径(还可以在编译目标代码时指定程序的动态库搜索路径。 这是通过gcc 的参数"-Wl,-rpath,"指定(如例3所示)。当指定多个动态库搜索路径时,路径之间用冒号":"分隔) 4、默认的动态库搜索路径/lib 5、默认的动态库搜索路径/usr/lib 可以通过执行可执行文件pos得到的结果不同获知其搜索到了哪个动态库,从而获得第1个动态库搜索顺序,然后删除该动态库, 再执行程序pos,获得第2个动态库搜索路径,再删除第2个被搜索到的动态库, 如此往复,将可得到Linux搜索动态库的先后顺序。 程序pos执行的输出结果和搜索到的动态库的对应关系如表1所示 程序pos输出结果使用的动态库对应的动态库搜索路径指定方式 ./ ./libpos.so 编译目标代码时指定的动态库搜索路径

相关文档
最新文档