精华内容
下载资源
问答
  • Linux常见头文件

    2015-05-12 16:40:38
    Linux常见头文件(转) linux常用头文件如下: POSIX标准定义的头文件  目录项  文件控制  文件名匹配类型  路径名模式匹配类型  组文件  网络数据库操作  口令文件  正则...

    Linux常见头文件(转)

    linux常用头文件如下:

    POSIX标准定义的头文件

    <dirent.h>        目录项

    <fcntl.h>         文件控制

    <fnmatch.h>    文件名匹配类型

    <glob.h>    路径名模式匹配类型

    <grp.h>        组文件

    <netdb.h>    网络数据库操作

    <pwd.h>        口令文件

    <regex.h>    正则表达式

    <tar.h>        TAR归档值

    <termios.h>    终端I/O

    <unistd.h>    符号常量

    <utime.h>    文件时间

    <wordexp.h>    字符扩展类型

    -------------------------

    <arpa/inet.h>    INTERNET定义

    <net/if.h>    套接字本地接口

    <netinet/in.h>    INTERNET地址族

    <netinet/tcp.h>    传输控制协议定义

    -------------------------

    <sys/mman.h>    内存管理声明

    <sys/select.h>    Select函数

    <sys/socket.h>    套接字借口

    <sys/stat.h>    文件状态

    <sys/times.h>    进程时间

    <sys/types.h>    基本系统数据类型

    <sys/un.h>    UNIX域套接字定义

    <sys/utsname.h>    系统名

    <sys/wait.h>    进程控制

    ------------------------------

    POSIX定义的XSI扩展头文件

    <cpio.h>    cpio归档值

    <dlfcn.h>    动态链接

    <fmtmsg.h>    消息显示结构

    <ftw.h>        文件树漫游

    <iconv.h>    代码集转换使用程序

    <langinfo.h>    语言信息常量

    <libgen.h>    模式匹配函数定义

    <monetary.h>    货币类型

    <ndbm.h>    数据库操作

    <nl_types.h>    消息类别

    <poll.h>    轮询函数

    <search.h>    搜索表

    <strings.h>    字符串操作

    <syslog.h>    系统出错日志记录

    <ucontext.h>    用户上下文

    <ulimit.h>    用户限制

    <utmpx.h>    用户帐户数据库

    -----------------------------

    <sys/ipc.h>    IPC(命名管道)

    <sys/msg.h>    消息队列

    <sys/resource.h>资源操作

    <sys/sem.h>    信号量

    <sys/shm.h>    共享存储

    <sys/statvfs.h>    文件系统信息

    <sys/time.h>    时间类型

    <sys/timeb.h>    附加的日期和时间定义

    <sys/uio.h>    矢量I/O操作

    ------------------------------

    POSIX定义的可选头文件

    <aio.h>        异步I/O

    <mqueue.h>    消息队列

    <pthread.h>    线程

    <sched.h>    执行调度

    <semaphore.h>    信号量

    <spawn.h>     实时spawn接口

    <stropts.h>    XSI STREAMS接口

    <trace.h>     事件跟踪

    3、 C/C++头文件一览

    C

    #i nclude <assert.h>    //设定插入点

    #i nclude <ctype.h>     //字符处理

    #i nclude <errno.h>     //定义错误码

    #i nclude <float.h>     //浮点数处理

    #i nclude <iso646.h>        //对应各种运算符的宏

    #i nclude <limits.h>    //定义各种数据类型最值的常量

    #i nclude <locale.h>    //定义本地化C函数

    #i nclude <math.h>     //定义数学函数

    #i nclude <setjmp.h>        //异常处理支持

    #i nclude <signal.h>        //信号机制支持

    #i nclude <stdarg.h>        //不定参数列表支持

    #i nclude <stddef.h>        //常用常量

    #i nclude <stdio.h>     //定义输入/输出函数

    #i nclude <stdlib.h>    //定义杂项函数及内存分配函数

    #i nclude <string.h>    //字符串处理

    #i nclude <time.h>     //定义关于时间的函数

    #i nclude <wchar.h>     //宽字符处理及输入/输出

    #i nclude <wctype.h>    //宽字符分类

    传统C++

    #i nclude <fstream.h>    //改用<fstream>

    #i nclude <iomanip.h>    //改用<iomainip>

    #i nclude <iostream.h>   //改用<iostream>

    #i nclude <strstrea.h>   //该类不再支持,改用<sstream>中的stringstream

    ————————————————————————————————

    标准C++ 

    #i nclude <algorithm>    //STL 通用算法

    #i nclude <bitset>     //STL 位集容器

    #i nclude <cctype>          //字符处理

    #i nclude <cerrno>      //定义错误码

    #i nclude <cfloat>     //浮点数处理

    #i nclude <ciso646>         //对应各种运算符的宏

    #i nclude <climits>     //定义各种数据类型最值的常量

    #i nclude <clocale>     //定义本地化函数

    #i nclude <cmath>      //定义数学函数

    #i nclude <complex>     //复数类

    #i nclude <csignal>         //信号机制支持

    #i nclude <csetjmp>         //异常处理支持

    #i nclude <cstdarg>         //不定参数列表支持

    #i nclude <cstddef>         //常用常量

    #i nclude <cstdio>      //定义输入/输出函数

    #i nclude <cstdlib>     //定义杂项函数及内存分配函数

    #i nclude <cstring>     //字符串处理

    #i nclude <ctime>      //定义关于时间的函数

    #i nclude <cwchar>      //宽字符处理及输入/输出

    #i nclude <cwctype>     //宽字符分类

    #i nclude <deque>      //STL 双端队列容器

    #i nclude <exception>    //异常处理类

    #i nclude <fstream>     //文件输入/输出

    #i nclude <al>   //STL 定义运算函数(代替运算符)

    #i nclude <limits>      //定义各种数据类型最值常量

    #i nclude <list>      //STL 线性列表容器

    #i nclude <locale>          //本地化特定信息

    #i nclude <map>       //STL 映射容器

    #i nclude <memory>          //STL通过分配器进行的内存分配

    #i nclude <new>             //动态内存分配

    #i nclude <numeric>         //STL常用的数字操作

    #i nclude <iomanip>     //参数化输入/输出

    #i nclude <ios>       //基本输入/输出支持

    #i nclude <iosfwd>     //输入/输出系统使用的前置声明

    #i nclude <iostream>     //数据流输入/输出

    #i nclude <istream>     //基本输入流

    #i nclude <iterator>        //STL迭代器

    #i nclude <ostream>     //基本输出流

    #i nclude <queue>      //STL 队列容器

    #i nclude <set>       //STL 集合容器

    #i nclude <sstream>     //基于字符串的流

    #i nclude <stack>      //STL 堆栈容器

    #i nclude <stdexcept>    //标准异常类

    #i nclude <streambuf>    //底层输入/输出支持

    #i nclude <string>     //字符串类

    #i nclude <typeinfo>        //运行期间类型信息

    #i nclude <utility>     //STL 通用模板类

    #i nclude <valarray>        //对包含值的数组的操作

    #i nclude <vector>     //STL 动态数组容器

    ————————————————————————————————

    C99增加的部分

    #i nclude <complex.h>   //复数处理

    #i nclude <fenv.h>    //浮点环境

    #i nclude <inttypes.h>  //整数格式转换

    #i nclude <stdbool.h>   //布尔环境

    #i nclude <stdint.h>   //整型环境

    #i nclude <tgmath.h>   //通用类型数学宏

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wubin1124/archive/2009/12/09/4971359.aspx

    ***********************************************************************************************************************************

    程序在使用一个函数之前,应该首先声明该函数。为了便于使用,通常的做法是把同一类函数或数据结构以及常数的声明放在一个头文件(header file)中。头文件中也可以包括任何相关的类型定义和宏(macros)。在程序源代码文件中则使用预处理指令“#include”来引用相关的头文件。

      程序中如下形式的一条控制行语句将会使得该行被文件filename的内容替换掉:

      # include

      当然,文件名filename中不能包含 > 和换行字符以及 "、'、\、或 /* 字符。编译系统会在定义的一系列地方搜索这个文件。类似地,下面形式的控制行会让编译器首先在源程序所在目录中搜索filename文件:

      # include "filename"

      如果没有找到,编译器再执行同上面一样的搜索过程。在这种形式中,文件名filename中不能包含换行字符和 "、'、\、或 /* 字符,但允许使用 > 字符。

      在一般应用程序源代码中,头文件与开发环境中的库文件有着不可分割的紧密联系,库中的每个函数都需要在头文件中加以声明。应用程序开发环境中的头文件(通常放置在系统/usr/include/目录中)可以看作是其所提供函数库(例如libc.a)中函数的一个组成部分,是库函数的使用说明或接口声明。在编译器把源代码程序转换成目标模块后,链接程序(linker)会把程序所有的目标模块组合在一起,包括用到的任何库文件中的模块。从而构成一个可执行的程序。

      对于标准C函数库来讲,其最基本的头文件有15个。每个头文件都表示出一类特定函数的功能说明或结构定义,例如I/O操作函数、字符处理函数等。有关标准函数库的详细说明及其实现可参照Plauger编著的《The Standard C Library》一书。

      而对于本书所描述的内核源代码,其中涉及的头文件则可以看作是对内核及其函数库所提供服务的一个概要说明,是内核及其相关程序专用的头文件。在这些头文件中主要描述了内核所用到的所有数据结构、初始化数据、常数和宏定义,也包括少量的程序代码。除了几个专用的头文件以外(例如块设备头文件blk.h),Linux 0.12内核中所用到的头文件都放在内核代码树的include/目录中。因此编译Linux 0.12内核无需使用开发环境提供的位于/usr/include/目录下的任何头文件。当然,tools/build.c程序除外。因为这个程序虽然被包含在内核源代码树中,但它只是一个用于组合创建内核映像文件的工具程序或应用程序,不会被链接到内核代码中。

      从0.95版开始,内核代码树中的头文件需要复制到/usr/include/linux目录下才能顺利地编译内核。即从该版内核开始头文件已经与开发环境使用的头文件合二为一。

      14.1 include/目录下的文件

      内核所用到的头文件都保存在include/目录下。该目录下的文件如表11-1所示。这里需要说明一点:为了方便使用和兼容性,Linus在编制内核程序头文件时所使用的命名方式与标准C库头文件的命名方式相似,许多头文件的名称甚至其中的一些内容都与标准C库的头文件基本相同,但这些内核头文件仍然是内核源代码或与内核有紧密联系的程序专用的。在一个Linux系统中,它们与标准库的头文件并存。通常的做法是将这些头文件放置在标准库头文件目录中的子目录下,以让需要用到内核数据结构或常数的程序使用。

      另外,也由于版权问题,Linus试图重新编制一些头文件以取代具有版权限制的标准C库的头文件。因此这些内核源代码中的头文件与开发环境中的头文件有一些重叠的地方。在Linux系统中,列表14-1中的asm/、linux/和sys/三个子目录下的内核头文件通常需要复制到标准C库头文件所在的目录(/usr/include)中,而其他一些文件若与标准库的头文件没有冲突则可以直接放到标准库头文件目录下,或者改放到这里的三个子目录中。

      asm/目录下主要用于存放与计算机体系结构密切相关的函数声明或数据结构的头文件。例如Intel CPU 端口IO汇编宏文件io.h、中断描述符设置汇编宏头文件system.h等。linux/目录下是Linux内核程序使用的一些头文件。其中包括调度程序使用的头文件sched.h、内存管理头文件mm.h和终端管理数据结构文件tty.h等。而sys/目录下存放着几个与内核资源相关头文件。不过从0.98版开始,内核目录树下sys/目录中的头文件被全部移到了linux/目录下。

      Linux 0.12版内核中共有32个头文件(*.h),其中asm/子目录中含有4个,linux/子目录中含有10个,sys/子目录中含有5个。从下一节开始我们首先描述include/目录下的13个头文件,然后依次说明每个子目录中的文件。说明顺序按照文件名称排序进行。

    linux常用头文件详解(转) - by myself - 勿以恶小而为之,勿以善小而不为

     14.2 a.out.h文件

      14.2.1 功能描述

      在Linux 内核中,a.out.h文件用于定义被加载的可执行文件结构。主要用于加载程序fs/exec.c中。该文件不属于标准C库,它是内核专用的头文件。但由于与标准库的头文件名没有冲突,因此在Linux系统中一般可以放/usr/include/目录下,以供涉及相关内容的程序使用。该头文件中定义了目标文件的一种a.out(Assembly out)格式。Linux 0.12系统中使用的.o文件和可执行文件就采用了这种目标文件格式。

      a.out.h文件包括三个数据结构定义和一些相关的宏定义,因此文件可被相应地分成三个部分:

      ◆第1~108行给出并描述了目标文件执行头结构和相关的宏定义。

      ◆第109~185行对符号表项结构的定义和说明。

      ◆第186~217行对重定位表项结构进行定义和说明。

      由于该文件内容比较多,因此对其中三个数据结构以及相关宏定义的详细说明放在程序列表后。

      从0.96版内核开始,Linux系统直接采用了GNU的同名头文件a.out.h。因此造成在Linux 0.9x下编译的程序不能在Linux 0.1x系统上运行。下面对两个a.out头文件的不同之处进行分析,并说明如何让0.9x下编译的一些不是用动态链接库的执行文件也能在0.1x下运行。

      Linux 0.12使用的a.out.h文件与GNU同名文件的主要区别在于exec结构的第一个字段a_magic。GNU的该文件字段名称是a_info,并且把该字段又分成3个子域:标志域(Flags)、机器类型域(Machine Type)和魔数域(Magic Number)。同时为机器类型域定义了相应的宏N_MACHTYPE和N_FLAGS,如图14-1所示。

    linux常用头文件详解(转) - by myself - 勿以恶小而为之,勿以善小而不为

        在Linux 0.9x系统中,对于采用静态库连接的执行文件,图中各域注释中括号内的值是该字段的默认值。这种二进制执行文件开始处的4个字节是:

      0x0b, 0x01, 0x64, 0x00

      而这里的头文件仅定义了魔数域。因此,在Linux 0.1x系统中一个a.out格式的二进制执行文件开始的4个字节是:

      0x0b, 0x01, 0x00, 0x00

      可以看出,采用GNU的a.out格式的执行文件与Linux 0.1x系统上编译出的执行文件的区别仅在机器类型域。因此我们可以把Linux 0.9x上的a.out格式执行文件的机器类型域(第3个字节)清零,让其运行在0.1x系统中。只要被移植的执行文件所调用的系统调用都已经在0.1x系统中实现即可。在开始重新组建Linux 0.1x根文件系统中的很多命令时,作者就采用了这种方法。

      在其他方面,GNU的a.out.h头文件与这里的a.out.h没有什么区别。

       14.2.3 a.out执行文件格式

      Linux内核0.12版仅支持a.out(Assembly out)执行文件和目标文件的格式,虽然这种格式目前已经渐渐不用,而使用功能更为齐全的ELF(Executable and Link Format)格式,但是由于其简单性,作为入门的学习材料比较适用。下面全面介绍一下a.out格式。

      在头文件a.out.h中声明了三个数据结构以及一些宏。这些数据结构描述了系统上目标文件的结构。在Linux 0.12系统中,编译产生的目标模块文件(简称模块文件)和链接生成的二进制可执行文件均采用a.out格式。这里统称为目标文件。一个目标文件由7部分(7节)组成。它们依次为:

      (1)执行头部分(exec header)。该部分中含有一些参数(exec结构),内核使用这些参数把执行文件加载到内存中并执行,而链接程序(ld)使用这些参数将一些模块文件组合成一个可执行文件。这是目标文件唯一必要的组成部分。

      (2)代码段部分(text segment)。含有程序执行时被加载到内存中的指令代码和相关数据。可以以只读形式被加载。

      (3)数据段部分(data segment)。这部分含有已经初始化过的数据,总是被加载到可读写的内存中。

      (4)代码重定位部分(text relocations)。这部分含有供链接程序使用的记录数据。在组合目标模块文件时用于定位代码段中的指针或地址。

      (5)数据重定位部分(data relocations)。类似于代码重定位部分的作用,但是用于数据段中指针的重定位。

      (6)符号表部分(symbol table)。这部分同样含有供链接程序使用的记录数据,用于在二进制目标模块文件之间对命名的变量和函数(符号)进行交叉引用。

      (7)字符串表部分(string table)。该部分含有与符号名对应的字符串。

      每个目标文件均以一个执行数据结构(exec structure)开始。该数据结构的形式如下:

    linux常用头文件详解(转) - by myself - 勿以恶小而为之,勿以善小而不为

        各个字段的功能如下:

      1)a_magic——该字段含有三个子字段,分别是标志字段、机器类型标识字段和魔数字段,参见图11-1。不过对于Linux 0.12系统其目标文件只使用了其中的魔数子字段,并使用宏N_MAGIC()来访问,它唯一地确定了二进制执行文件与其他加载的文件之间的区别。该子字段中必须包含以下值之一:

      ◆OMAGIC。表示代码和数据段紧随在执行头后面并且是连续存放的。内核将代码和数据段都加载到可读写内存中。编译器编译出的目标文件的魔数是OMAGIC(八进制0407)。

      ◆NMAGIC。同OMAGIC一样,代码和数据段紧随在执行头后面并且是连续存放的。然而内核将代码加载到了只读内存中,并把数据段加载到代码段后下一页可读写内存边界开始。

      ◆ZMAGIC。内核在必要时从二进制执行文件中加载独立的页面。执行头部、代码段和数据段都被链接程序处理成多个页面大小的块。内核加载的代码页面是只读的,而数据段的页面是可写的。链接生成的可执行文件的魔数即是ZMAGIC(0413,即0x10b)。

      2)a_text——该字段含有代码段的长度值,字节数。

      3)a_data——该字段含有数据段的长度值,字节数。

      4)a_bss——含有bss段的长度,内核用其设置在数据段后初始的break(brk)。内核在加载程序时,这段可写内存显现出处于数据段后面,并且初始时为全零。

      5)a_syms——含有符号表部分的字节长度值。

      6)a_entry——含有内核将执行文件加载到内存中以后,程序执行起始点的内存地址。

      7)a_trsize——该字段含有代码重定位表的大小,是字节数。

      8)a_drsize——该字段含有数据重定位表的大小,是字节数。

        在a.out.h头文件中定义了几个宏,这些宏使用exec结构来测试一致性或者定位执行文件中各个部分(节)的位置偏移值。这些宏有:

      ◆N_BADMAG(exec)。如果a_magic字段不能被识别,则返回非零值。

      ◆N_TXTOFF(exec)。代码段的起始位置字节偏移值。

      ◆N_DATOFF(exec)。数据段的起始位置字节偏移值。

      ◆N_DRELOFF(exec)。数据重定位表的起始位置字节偏移值。

      ◆N_TRELOFF(exec)。代码重定位表的起始位置字节偏移值。

      ◆N_SYMOFF(exec)。符号表的起始位置字节偏移值。

      ◆N_STROFF(exec)。字符串表的起始位置字节偏移值。

      重定位记录具有标准的格式,它使用重定位信息(relocation_info)结构来描述,如下所示:

    linux常用头文件详解(转) - by myself - 勿以恶小而为之,勿以善小而不为

        该结构中各字段的含义如下:

      1)r_address——该字段含有需要链接程序处理(编辑)的指针的字节偏移值。代码重定位的偏移值是从代码段开始处计数的,数据重定位的偏移值是从数据段开始处计算的。链接程序会将已经存储在该偏移处的值与使用重定位记录计算出的新值相加。

      2)r_symbolnum——该字段含有符号表中一个符号结构的序号值(不是字节偏移值)。链接程序在算出符号的绝对地址以后,就将该地址加到正在进行重定位的指针上。(如果r_extern比特位是0,那么情况就不同,见下面。)

      3)r_pcrel——如果设置了该位,链接程序就认为正在更新一个指针,该指针使用pc相关寻址方式,是属于机器码指令部分。当运行程序使用这个被重定位的指针时,该指针的地址被隐式地加到该指针上。

      4)r_length——该字段含有指针长度的2的次方值:0表示1字节长,1表示2字节长,2表示4字节长。

      5)r_extern——如果被置位,表示该重定位需要一个外部引用;此时链接程序必须使用一个符号地址来更新相应指针。当该位是0时,则重定位是“局部”的。链接程序更新指针以反映各个段加载地址中的变化,而不是反映一个符号值的变化。在这种情况下,r_symbolnum字段的内容是一个n_type值;这类字段告诉链接程序被重定位的指针指向那个段。

      6)r_pad——Linux系统中没有使用的4个比特位。在写一个目标文件时最好全置0。

      符号将名称映射为地址(或者更通俗地讲是字符串映射到值)。由于链接程序对地址的调整,一个符号的名称必须用来表示其地址,直到已被赋予一个绝对地址值。符号是由符号表中固定长度的记录以及字符串表中的可变长度名称组成。符号表是nlist结构的一个数组,如下所示:

    linux常用头文件详解(转) - by myself - 勿以恶小而为之,勿以善小而不为

    其中各字段的含义为:

      1)n_un.n_strx——含有本符号的名称在字符串表中的字节偏移值。当程序使用nlist()函数访问一个符号表时,该字段被替换为n_un.n_name字段,这是内存中字符串的指针。

      2)n_type——用于链接程序确定如何更新符号的值。使用第146~154行开始的位屏蔽(bitmasks)码可以将8比特宽度的n_type字段分割成三个子字段,如图14-2所示。对于N_EXT类型位置位的符号,链接程序将它们看作是“外部的”符号,并且允许其他二进制目标文件对它们的引用。N_TYPE屏蔽码用于链接程序感兴趣的比特位:

    linux常用头文件详解(转) - by myself - 勿以恶小而为之,勿以善小而不为

        ◆N_UNDF。一个未定义的符号。链接程序必须在其他二进制目标文件中定位一个具有相同名称的外部符号,以确定该符号的绝对数据值。特殊情况下,如果n_type字段是非零值,并且没有二进制文件定义了这个符号,则链接程序在BSS段中将该符号解析为一个地址,保留长度等于n_value的字节。如果符号在多于一个二进制目标文件中都没有定义并且这些二进制目标文件对其长度值不一致,则链接程序将选择所有二进制目标文件中最大的长度。

      ◆N_ABS。一个绝对符号。链接程序不会更新一个绝对符号。

      ◆N_TEXT。一个代码符号。该符号的值是代码地址,链接程序在合并二进制目标文件时会更新其值。

      ◆N_DATA。一个数据符号。与N_TEXT类似,但是用于数据地址。对应代码和数据符号的值不是文件的偏移值而是地址;为了找出文件的偏移,就有必要确定相关部分开始加载的地址并减去它,然后加上该部分的偏移。

      ◆N_BSS。一个BSS符号。与代码或数据符号类似,但在二进制目标文件中没有对应的偏移。

      ◆N_FN。一个文件名符号。在合并二进制目标文件时,链接程序会将该符号插入在二进制文件中的符号之前。符号的名称就是给予链接程序的文件名,而其值是二进制文件中首个代码段地址。链接和加载时不需要文件名符号,但对于调式程序非常有用。

      ◆N_STAB。屏蔽码用于选择符号调式程序(例如gdb)感兴趣的位。其值在stab()中说明。

      3)n_other——该字段按照n_type确定的段,提供有关符号重定位操作的符号独立性信息。目前,n_other字段的最低4位含有两个值之一:AUX_FUNC和AUX_OBJECT(有关定义参见)。AUX_FUNC将符号与可调用的函数相关,AUX_OBJECT将符号与数据相关,无论它们是位于代码段还是数据段。该字段主要用于链接程序ld,用于动态可执行程序的创建。

      4)n_desc——保留给调式程序使用;链接程序不对其进行处理。不同的调试程序将该字段用作不同的用途。

      5)n_value——含有符号的值。对于代码、数据和BSS符号,这是一个地址;对于其他符号(例如调式程序符号),值可以是任意的。

      字符串表由长度为unsigned long后跟一null结尾的符号字符串组成。长度代表整个表的字节大小,所以在32位的机器上其最小值(即第1个字符串的偏移)总是4。

      14.3 const.h文件

      14.3.1 功能描述

      该文件定义了i节点中文件属性和类型i_mode字段所用到的一些标志位常量符号。

      14.3.2 代码注释

    展开全文
  • 该文档讲述了在mini2440常见头文件的位置,方便大家查找头文件,方便程序的移植。
  • 1 头文件 ctype.h函数列表<>函数类别 函数用途 详细说明 字符测试是否字母和数字 isalnum是否字母 isalpha是否控制字符 iscntrl是否数字 isdigit是否可显示字符(除空格外) isgraph是否可显示字符(包括空格) ...

    1 头文件 ctype.h

    函数列表<>

    函数类别 函数用途 详细说明 字符测试

    是否字母和数字 isalnum

    是否字母 isalpha

    是否控制字符 iscntrl

    是否数字 isdigit

    是否可显示字符(除空格外) isgraph

    是否可显示字符(包括空格) isprint

    是否既不是空格,又不是字母和数字的可显示字符 ispunct

    是否空格 isspace

    是否大写字母 isupper

    是否16进制数字(0-9,A-F)字符 isxdigit

    字符大小写转换函数

    转换为大写字母 toupper

    转换为小写字母 tolower

    地区化

    本类别的函数用于处理不同国家的语言差异。

    2 头文件 local.h

    函数列表

    函数类别 函数用途 详细说明

    地区控制

    地区设置 setlocale

    数字格式约定查询

    国家的货币、日期、时间等的格式转换 localeconv

    数学函数

    本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) .

    3 头文件 math.h

    函数列表

    函数类别 函数用途 详细说明

    错误条件处理

    定义域错误(函数的输入参数值不在规定的范围内)

    值域错误(函数的返回值不在规定的范围内)

    三角函数

    反余弦 acos

    反正弦 asin

    反正切 atan

    反正切2 atan2

    余弦 cos

    正弦 sin

    正切 tan

    双曲函数 双曲余弦 cosh

    双曲正弦 sinh

    双曲正切 tanh

    指数和对数

    指数函数 exp

    指数分解函数 frexp

    乘积指数函数 fdexp

    自然对数 log

    以10为底的对数 log10

    浮点数分解函数 modf

    幂函数 幂函数 pow

    平方根函数 sqrt

    整数截断,绝对值和求余数函数 求下限接近整数 ceil

    绝对值 fabs

    求上限接近整数 floor

    求余数 fmod

    本分类函数用于实现在不同底函数之间直接跳转代码。

    4 头文件 setjmp.h io.h

    函数列表

    函数类别 函数用途 详细说明

    保存调用环境 setjmp

    恢复调用环境 longjmp

    信号处理

    该分类函数用于处理那些在程序执行过程中发生例外的情况。

    5 头文件 signal.h

    函数列表

    函数类别 函数用途 详细说明

    指定信号处理函数 signal

    发送信号 raise

    可变参数处理

    本类函数用于实现诸如printf,scanf等参数数量可变底函数。

    6 头文件 stdarg.h

    函数列表

    函数类别 函数用途 详细说明

    可变参数访问宏

    可变参数开始宏 va_start

    可变参数结束宏 va_end

    访问下一个可变参数宏 va_arg

    输入输出函数

    该分类用于处理包括文件、控制台等各种输入输出设备,各种函数以“流”的方式实现.

    7 头文件 stdio.h

    函数列表

    函数类别 函数用途 详细说明

    文件操作

    删除文件 remove

    修改文件名称 re

    展开全文
  • 标准C语言头文件ISO C标准定义的头文件(24项) 验证程序断言 支持复数算术运算 字符类型 出错码 浮点环境 浮点常量 整型格式转换 替代关系操作符宏 实现常量 局部类别 数学常量 非局部goto 信号 可变参数表 布尔类型...

    标准C语言头文件

    ISO C标准定义的头文件(24项)

    验证程序断言 支持复数算术运算 字符类型

    出错码 浮点环境 浮点常量

    整型格式转换 替代关系操作符宏 实现常量

    局部类别 数学常量 非局部goto

    信号 可变参数表 布尔类型和值

    标准定义 整型 标准I/O库

    实用程序库函数 字符串操作

    时间和日期 宽字符支持

    POSIX标准定义的必须的头文件(26项)

    目录项 文件控制

    路径名模式匹配类型 组文件

    口令文件 正则表达式

    终端I/O 符号常量

    字扩展类型 Internet定义

    Internet地址族 传输控制协议

    select函数 套接字接口

    进程时间 基本系统数据类型

    系统名 进程控制

    POSIX标准定义的XSI扩展头文件(26项)

    cpio归档值 动态链接

    文件树漫游 代码集转换实用程序

    模式匹配函数定义 货币类型

    消息类别 轮询函数

    字符串操作 系统出错日志记录

    用户限制 用户帐户数据库

    消息队列 资源操作

    共享存储 文件系统信息

    附加的时间 矢量I/O操作

    POSIX标准定义的可选头文件(8项)

    异步I/O 消息队列

    执行调度 信号量

    XSI STREAMS接口 时间跟踪 通用类型数学宏 宽字符分类和映射支持文件名匹配类型 网络数据库操作 tar归档值 文件时间 套接字本地接口 内存管理声明 文件状态 UNIX域套接字定义 消息显示结构 语言信息常量 数据库操作 搜索表 用户上下文 IPC 信号量 时间类型 线程 实时spawn接口

    展开全文
  • C语言常见头文件汇总

    千次阅读 多人点赞 2020-05-12 23:45:54
    种类 struct lconv 数值格式信息(类型) 功能 setlocale 设置或检索语言环境(函数) localeconv 获取数量的区域设置格式参数(函数) 10.(math.h) C数字库 标头声明了一组函数来计算常见的数学运算和转换: ...

    目录:

    C library:

    1. (assert.h) 2. (ctype.h) 3. (errno.h) 4. (fenv.h) 5. (float.h) 6.(inttypes.h) 7. (iso646.h) 8.(limits.h)
      9. (locale.h) 10. (math.h) 11. (setjmp.h) 12. (signal.h) 13. (stdarg.h) 14. (stdbool.h) 15.(stddef.h) 16. (stdint.h) 17.(stdio.h) 18. (stdlib.h) 19. (string.h) 20. (tgmath.h)21. (time.h) 22. (uchar.h) 23.(wchar.h) 24. (wctype.h)

    1.(assert.h)

    assert.h 定义一个可用作标准调试工具的宏函数:
    assert      宏功能    评估断言(宏)
    

    2. (ctype.h)

    字符处理功能
    该标头声明了一组用于分类和转换单个字符的函数。
    功能:
    这些函数的INT等效一个字符作为参数并返回一个INT,它们可以是另一个字符或表示布尔值的值:一个INT的值0手段假,以及INT从值不同0表示真。
    (1)字符分类功能:
    他们检查作为参数传递的字符是否属于某个类别:
    isalnum  
       检查字符是否为字母数字(函数)
    isalpha
       检查字符是否为字母(函数)
    isblank 
       检查字符是否为空白(功能)
    iscntrl
       检查字符是否为控制字符(功能)
    isdigit
       检查字符是否为十进制数字(功能)
    isgraph
       检查字符是否具有图形表示(功能)
    islower
       检查字符是否为小写字母(功能)
    isprint
       检查字符是否可打印(功能)
    ispunct
       检查字符是否为标点符号(函数)
    isspace
       检查字符是否为空格(功能)
    isupper
       检查字符是否为大写字母(功能)
    isxdigit
       检查字符是否为十六进制数字(函数)
    (2)字符转换功能:
    在字母大小写之间转换的两个函数:
    tolower
       将大写字母转换为小写字母(函数)
    toupper
       将小写字母转换为大写字母(函数)
    

    3.(errno.h)

    C错误
    定义以下宏的C标头:
    errno:    上一个错误编号(宏)
    加上至少三个其他宏常量: 益登, 范围 和 序列号
    

    4.(fenv.h)

    浮点环境
        该标头声明一组函数和宏以及特定类型,以访问浮点环境。
        在浮点环境维持一系列状态标志和具体的控制模式。关于浮点环境的具体内容取决于实现,但是状态标志通常包括浮点异常及其相关信息,并且控制模式至少包括舍入方向。
    功能:
    (1)浮点异常:
    feclearexcept
       清除浮点异常(函数)
    feraiseexcept
       引发浮点异常(函数)
    fegetexceptflag
       获取浮点异常标志(函数)
    fesetexceptflag
       设置浮点异常标志(函数)
    (2)取整方向:
    fegetround
       获取舍入方向模式(功能)
    fesetround
       设置舍入方向模式(功能)
    (3)整个环境:
    fegetenv
       获取浮点环境(函数)
    fesetenv
       设置浮点环境(函数)
    feholdexcept
       保留浮点异常(函数)
    feupdateenv
       更新浮点环境(函数)
    (4)其他:
    fetestexcept
        测试浮点异常(功能)
    (5)种类:
    fenv_t
       浮点环境类型(type)
    fexcept_t
       浮点异常类型(type)
    (6)宏常量:
    <1>浮点异常
    FE_DIVBYZERO
       磁极错误异常(宏)
    FE_INEXACT
       不精确的结果异常(宏)
    FE_INVALID
       无效的参数异常(宏)
    FE_OVERFLOW
       溢出范围错误异常(宏)
    FE_UNDERFLOW
       下溢范围错误异常(宏)
    FE_ALL_EXCEPT
       所有例外(宏)
    <2>取整方向
    FE_DOWNWARD
    	向下舍入方向模式(宏)
    FE_TONEAREST
    	最接近的舍入方向模式(宏)
    FE_TOWARDZERO
    	向零舍入方向模式(宏)
    FE_UPWARD
    	向上舍入方向模式(宏)
    <3>整个环境
    FE_DFL_ENV
    	默认环境(宏)
    <4>pragma
    FENV_ACCESS
    	进入浮点环境(pragma)	
    

    5.(float.h)

    浮点类型的特征
    此标头描述了特定系统和所使用的编译器实现的浮点类型的特征。
    
    浮点数由四个元素组成:
    信号:负号或非负号
    一个基数(或基数):表示可以用一位数字表示的不同数字(二进制​​为2,十进制为10,十六进制为16,依此类推...)
    有效数字(或尾数):这是上述基数的一系列数字。该系列中的位数是所谓的精度。
    指数(也称为特征或小数位数):代表有效位数的偏移量,以下列方式影响该值:
    浮点的值 = 有效位数x 基本指数及其对应的符号。
    	宏常量
    以下面板显示了此标头中定义的不同值的名称以及所有实现的最小值或最大值(每个实现可以将这些值设置为大于或小于指定的此最小值或最大值):
    当一组宏时存在前缀FLT_, DBL_ 和 LDBL_,以 FLT_适用于该float类型,DBL_到double和一个LDBL_到long double。
        兼容性
    FLT_EVAL_METHOD 和 DECIMAL_DIG 为符合1999年或以后的C标准(自2011年以来仅包括C ++标准:C ++ 11)的库定义。
    

    在这里插入图片描述

    6.(inttypes.h)

    C整数类型
    具有支持基于宽度的整数类型的库的标头。
    包括此标头会自动包括<cstdint>(定义基于宽度的整数类型)。
    
    巨集

    以下宏扩展为包含 打印 要么 扫描说明符,适用于基于特定宽度的整数类型:

    在这里插入图片描述

    功能

    此标头还声明了以下函数,这些函数将 cstdlib和 cwchar 对于 intmax_t:
    在这里插入图片描述

    种类

    imaxdiv_t
    类型返回 imaxdiv, 哪一个是 div_t 等价于 intmax_t。

    7.(iso646.h)

    ISO 646替代运算符
    此标头为ISO646标准字符集不支持的C ++运算符定义了11个宏常量以及其他拼写形式:
    

    在这里插入图片描述
    在C ++中,保留字与这些宏具有相同的名称,并被视为其各自运算符的别名。因此,包含此标头在C ++中无效,并且对于使用备用名称也没有必要。

    8.(limits.h)

    整数类型的大小
    该头文件定义了常量,并限制了所使用的特定系统和编译器实现的基本整数类型。
    
    基本浮点类型的限制在<cfloat>(<float.h>)中定义。
    特定于宽度的整数类型和其他typedef类型的限制在<cstdint>(<stdint.h>)中定义。
    
    宏常量

    在这里插入图片描述
    兼容性
    LLONG_MIN, LLONG_MAX 和 ULLONG_MAX 为符合1999年或以后的C标准(自2011年以来仅包括C ++标准:C ++ 11)的库定义。

    9.(locale.h)

    C本地化库
    C语言支持特定于本地化的设置,例如特定于区域性的日期格式或特定于国家/地区的货币符号。
    
    每个系统和特定的编译器实现都可以提供不同的语言环境选择(使用setlocale函数),但是对于任何C程序,至少有两个语言环境可供选择:
    该"C"区域是最小的区域。这是一个相当中性的语言环境,在所有系统和编译器中都具有相同的设置,因此使用此语言环境的程序的确切结果是可以预测的。这是所有C程序默认使用的语言环境。
    系统的默认语言环境(由空的C字符串指定:“”)。它是应用程序运行环境所提供的语言环境配置。通常,它包含比“ C”语言环境更多的本地化信息。
    
    此标头声明结构 列夫 和功能 setlocale 和 语言环境,以及要与之配合使用的几个宏。这些用于定义特定于语言环境的信息。
    
    请注意,语言环境配置会影响标准C库中许多功能的行为:
    在<cstring>(<string.h>)中,函数Strcoll 和 strxfrm 受角色转换规则的影响。
    在<cctype>(<ctype.h>)中,除等轴 和 isxdigit 受所选扩展字符集的影响。
    在<cstdio>(<stdio.h>)中,格式化的输入/输出操作受数字格式设置中的字符转换规则和小数点字符集影响。
    在<ctime>(<time.h>)中,函数strftime 受时间格式设置的影响。
    在此标头中,它影响其函数返回的值 setlocale 和 语言环境。
    
    还向程序提供了一些语言环境信息,以便以对语言环境敏感的方式更好地呈现其输出(语言环境)。
        种类
       struct lconv
          数值格式信息(类型)
        功能   
       setlocale
    	 设置或检索语言环境(函数)
    localeconv
    	 获取数量的区域设置格式参数(函数)
    

    10.(math.h)

    C数字库
    标头<cmath>声明了一组函数来计算常见的数学运算和转换:
        功能:
        三角函数
        cos          计算余弦(函数)
        sin          计算正弦(函数)
        tan          计算切线(函数)
        acos         计算反余弦(函数)
        asin         计算反正弦(函数)
        atan         计算反正切(函数)
        atan2        用两个参数计算反正切(函数)
        双曲函数
        cosh         计算双曲余弦(函数)
        sinh         计算双曲正弦(函数)
        tanh		 计算双曲正切(函数)
        acosh		 计算面积双曲余弦(函数)
        asinh		 计算面积双曲正弦(函数)
        atanh        计算区域双曲正切(函数)
        指数和对数函数
        exp			 计算指数函数(function)
        frexp        获取有效和指数(函数)
        ldexp        从有效数和指数(函数)生成值
        log          计算自然对数(函数)
        log10        计算常用对数(函数)
        modf         分为小数和整数部分(函数)
        exp2         计算二进制指数函数(function)
        expm1        计算指数减一(函数)
        ilogb        整数二进制对数(函数)
        log1p        计算对数加一(函数)
        log2         计算二进制对数(函数)
        logb         计算浮点基数对数(函数)
        scalbn       使用浮点基指数来缩放有效位数(函数)
        scalbln      使用浮点基指数(long)缩放有效位数(函数)
        power功能:
        pow          提升功率(功能)
        sqrt		 计算平方根(函数)
        cbrt		 计算立方根(函数)
        hypot        计算斜边(函数)
        误差和伽玛函数:
        erf          计算误差函数(function)
        erfc         计算互补误差函数(function)
        tgamma       计算伽玛函数(function)
        lgamma       计算对数伽马函数(function)
        舍入和余数函数:
        ceil         舍入值(函数)
        floor		 舍入值(函数)
        fmod         计算除法的余数(函数)
        trunc        截断值(函数)
        round 		 舍入到最接近(函数)
        lround       四舍五入到最接近的整数并转换为长整数(函数)
        llround      四舍五入到最接近的整数并转换为长整型(函数)
        rint         四舍五入到整数值(函数)
        lrint        舍入并转换为长整数(函数)
        llrint       舍入并转换为long long整数(函数)
        nearbyint    四舍五入到附近的整数值(函数)
        remainder    计算余数(IEC 60559)(功能)
        remquo       计算余数和商(函数)
        浮点运算功能:
        copysign     复制标志(功能)
        nan          生成安静的NaN (函数)
        nextafter    下一个可表示的值(函数)
        nexttoward   下一个可表示的值朝向精确值(函数)
        最小,最大,差函数:
        fdim         正差(函数)
        fmax         最大值(函数)
        fmin         最小值(函数)
        其他功能:
        fabs         计算绝对值(函数)
        abs          计算绝对值(函数)
        fma          乘加(函数)
            宏/函数:
             这些在C中作为宏实现,在C ++中作为函数实现:
    分类宏/功能:
        fpclassify   分类浮点值(宏/函数)
        isfinite     是有限值(宏)
        isinf        是无穷大(宏/功能)
        isnan        不是数字(宏/函数)
        isnormal     正常(宏/功能)
        signbit      符号位(宏/功能)
    比较宏/功能:
        isgreater    更大(宏)
        isgreaterequal  大于或等于(宏)
        isless       少(宏)
        islessequal  小于或等于(宏)
        islessgreater   小于或大于(宏)
        isunordered  无序(宏)
        宏常量:
        math_errhandling 错误处理(宏)
        INFINITY     无限(常数)
        NAN          非数字(常量)
        HUGE_VAL     巨大的价值(不变)
        HUGE_VALF    巨大的浮动价值
        HUGE_VALL    巨大的双精度值(常量)
        
    

    此标头还定义了以下宏常量(自C99 / C ++ 11起):
    在这里插入图片描述
    种类

    double_t     浮点类型(type)
    float_t      浮点类型(type)
    

    11.(setjmp.h)

    非本地跳
    通过此头文件提供的工具,程序员可以通过提供保留跳转环境的方法来跳过正常的函数调用并返回规则。
    
    标头提供一个函数,具有函数形式和特定类型的宏:
          功能:
    longjmp     跳远(功能)
          宏功能:
    setjmp      保存呼叫环境以进行跳远(宏)
          种类:
    jmp_buf     键入以保留信息以恢复调用环境()
    
    

    12.(signal.h)

    C库处理信号
    一些正在运行的环境使用信号来通知正在运行的进程某些事件。这些事件可能与程序代码执行的错误(例如错误的算术运算)或异常情况(例如请求中断程序)有关。
    
    信号通常表示程序已被要求终止或发生了不可恢复的错误的情况,因此处理信号可以执行终止前的清除操作或尝试以某种方式从错误中恢复。
    
    在标准C库中设计的情况下,并非所有运行环境都需要生成自动信号,并且某些其他环境不仅会生成这些信号,还会生成更多特定的信号。但无论如何,所有通过调用函数raise显式生成的信号都将传递到其相应的信号处理程序。
        功能:
        signal     将功能设置为处理信号(功能)
        raise      产生信号(函数)
        种类:
    sig_atomic_t   整体式(type)
        宏常量:
    

    在这里插入图片描述

    13.(stdarg.h)

    可变参数处理
    该标头定义了宏,以访问未命名参数列表中的各个参数,这些参数的编号和类型对于调用的函数是未知的。
    
    一个函数可以通过在其常规命名参数后加逗号和三个点(,...)来接受数量不等的附加参数而无需相应的参数声明:
    
    return_type function_name(parameter_declarations,...);
    要访问这些附加参数,可以使用在此标头中声明的宏va_start,va_arg和va_end:
    <1>首先,va_start将变量参数列表初始化为va_list。
    <2>随后执行va_arg会产生附加参数的值,其顺序与传递给函数的顺序相同。
    <3>最后,va_end必须在函数返回之前执行。
       种类:
    va_list     键入以保存有关变量参数的信息()
       宏功能:
    va_start    初始化变量参数列表(宏)
    va_arg      检索下一个参数(宏)
    va_end      结束使用变量参数列表(宏)
    va_copy     复制变量参数列表(宏)
    

    14.(stdbool.h)

    布尔型
    此标头在C中的目的是添加布尔类型以及true和false值作为宏定义。
    
    在直接支持这些类型的C ++中,标头仅包含一个宏,可用于检查是否支持该类型:
      宏常量:
    

    在这里插入图片描述

    15.(stddef.h)

    C标准定义
    该头定义了某些类型的语言隐式生成或使用的几种类型。
    种类:
    ptrdiff_t       指针减法的结果(类型)
    size_t          无符号整数类型(type)
    max_align_t     标量对齐最宽的类型()
    nullptr_t       空指针类型(C ++)(类型)
      在C中,此标头还包括wchar_t类型(宽字符类型)的声明,在C ++中,该声明是一种语言关键字,用于标识不同的基本类型(C ++中不需要标头)。
      宏功能:
    offsetof        返回成员的偏移量(宏)
      宏常量:
    NULL            空指针(宏)
    

    16.(stdint.h)

    整数类型
    该标头定义了一组具有特定宽度要求的整数类型别名,以及指定其限制的宏和用于创建这些类型的值的宏函数。
    
     种类:
    以下是基本整数类型或扩展整数类型的 typedef 。
    

    在这里插入图片描述
    其中一些typedef可能表示相同的类型。因此,函数重载不应依赖于它们的不同。

    *请注意,某些类型是可选的(因此,不保证可移植性)。特定的库实现也可以使用其系统支持的其他宽度来定义其他类型。无论如何,如果定义了签名版本或未签名版本,则将同时定义签名和未签名版本。

    巨集

    (1)cstdint类型限制
    在这里插入图片描述
    其中N是8、16、32、64之一,或库支持的任何其他类型宽度。
    仅定义与库支持的类型相对应的宏。

    (2)其他类型的限制
    其他标准整数类型的限制:
    在这里插入图片描述
    (3)类似函数的宏
    这些类似于函数的宏扩展为整数常量,适用于初始化上述类型的对象:
    在这里插入图片描述
    例如:
    INTMAX_C(2012) // expands to 2012LL or similar

    17.(stdio.h)

    C库执行输入/输出操作
    输入和输出操作也可以在下,用来执行++ Ç 圣 ANDAR d 我 NPUT和ö安输出库(cstdio,被称为stdio.h中在C语言)。该库使用所谓的流与物理设备(例如键盘,打印机,终端或系统支持的任何其他类型的文件)一起操作。流是一种以统一方式与之交互的抽象。所有流都具有相似的属性,而与它们所关联的物理介质的各个特征无关。
    
    流在cstdio库中作为指向FILE的指针处理对象。指向FILE对象的指针唯一地标识一个流,并在涉及该流的操作中用作参数。
    
    还存在三个标准流:stdin,stdout和stderr,它们是使用该库为所有程序自动创建和打开的。
    
    (1)流属性:
    流具有一些属性,这些属性定义可以在它们上使用哪些函数以及这些函数如何处理通过它们输入或输出的数据。其中的大多数属性是在使用fopen函数将流与文件(打开的文件)关联时定义的:
    
    读/写访问
        指定流对它们关联的物理介质是否具有读或写访问权限(或两者都有)。
    文字/二进制
        文本流被认为代表一组文本行,每个文本行以换行符结束。根据运行应用程序的环境,文本流可能会发生某些字符转换,以使某些特殊字符适应环境的文本文件规范。另一方面,二进制流是在不进行翻译的情况下从物理介质写入或读取的字符序列,与读取或写入该流的字符一一对应。
    缓冲
        缓冲区是一个内存块,在对数据进行物理读取或写入关联文件或设备之前,先在其中累积数据。流可以完全缓冲,行缓冲或不缓冲。在完全缓冲的流上,当缓冲区已满时,将读取/写入数据;在行缓冲的流上,当遇到换行符时会发生这种情况;而在非缓冲流上,则应尽快读取/写入数据。
    取向
        打开时,流没有方向。对它们执行输入/输出操作后,它们将变为面向字节的或面向宽的,这取决于所执行的操作(通常,<cstdio>中定义的功能是面向字节的,而<cwchar>中的功能是面向字节的)面向广泛)。有关更多信息,请参见cwchar。
    (2)指标:
    流具有某些内部指示器,这些指示器指定其当前状态并影响对其执行的某些输入和输出操作的行为:
    错误指示
          当与流有关的操作中发生错误时,设置此指示器。可以使用ferror函数检查该指示器,并且可以通过调用clearerr,freopen或rewind来重置该指示器。
    文件结束指示符
          设置时,指示对流执行的最后读取或写入操作已到达文件末尾。可以使用feof函数进行检查,也可以通过调用clearerr或freopen或通过调用任何重新定位函数(rewind,fseek和fsetpos)将其重置。
    位置指示器
          它是每个流的内部指针,指向下一个I / O操作中要读取或写入的下一个字符。它的值可以通过ftell和fgetpos函数获得,并且可以使用重定位函数rewind,fseek和fsetpos进行更改。
          功能:
       <1> 文件操作:
    remove          删除文件(功能)
    rename          重命名文件(功能)
    tmpfile         打开一个临时文件(函数)
    tmpnam          生成临时文件名(函数)
       <2>档案存取:
    fclose          关闭文件(功能)
    fflush          冲洗流(功能)
    fopen           打开文件(功能)
    freopen         重新打开具有不同文件或模式(功能)的流
    Setbuf          设置流缓冲区(函数)
    setvbuf         更改流缓冲(功能)
    <3>格式化的输入/输出:
    fprintf         将格式化的数据写入流(函数)
    fscanf          从流中读取格式化的数据(函数)
    printf          将格式化的数据打印到标准输出(功能)
    scanf           从stdin读取格式化的数据(函数)
    snprintf        将格式化的输出写到大小缓冲区(函数)
    sprintf         将格式化的数据写入字符串(函数)
    sscanf          从字符串读取格式化的数据(函数)
    vfprintf        将可变参数列表中的格式化数据写入流(函数)
    vfscanf         将流中的格式化数据读取到变量参数列表(函数)中
    vprintf         将格式化的数据从变量参数列表打印到stdout (函数)
    vscanf          将格式化的数据读入变量参数列表(函数)
    vsnprintf       将格式化的数据从变量参数列表写入大小已设置的缓冲区(函数)
    vsprintf        将变量参数列表中的格式化数据写入字符串(函数)
    vsscanf         将格式化的数据从字符串读入变量参数列表(函数)
    <4>字符输入/输出:
    fgetc           从流中获取字符(函数)
    fgets           从流中获取字符串(函数)
    fputc           将字符写入流(函数)
    fputs           将字符串写入流(函数)
    getc            从流中获取字符(函数)
    getchar         从stdin获取字符(函数)
    gets            从stdin获取字符串(函数)
    putc            将字符写入流(函数)
    Putchar         将字符写入标准输出(函数)
    puts            将字符串写入stdout (函数)
    ungetc          从流中取消字符(功能)
    <5>直接输入/输出:
    fread           从流中读取数据块(函数)
    fwrite          将数据块写入流(函数)
    <6>文件位置:
    fgetpos         获取流中的当前位置(函数)
    fseek           重新定位流位置指示器(功能)
    fsetpos         设置流的位置指示器(功能)
    ftell           获取流中的当前位置(函数)
    rewind          将流的位置设置为开头(函数)
    <7>错误处理:
    clearerr        清除错误指示灯(功能)
    feof            检查文件结束指示器(功能)
    ferror			检查错误指示灯(功能)
    perror			打印错误信息(功能)
          巨集:
    BUFSIZ          缓冲区大小(恒定)
    EOF    			文件结束(常量)
    FILENAME_MAX    文件名的最大长度(常量)
    FOPEN_MAX       同时开放流的潜在限制(恒定)
    L_tmpnam        临时文件名的最小长度(常量)
    NULL     		空指针(宏)
    TMP_MAX         临时文件数(常量)
    此外:_IOFBF,_IOLBF,_IONBF(使用setvbuf用来)
    和SEEK_CUR,SEEK_END和SEEK_SET(与用于FSEEK)。
          种类:
    FILE            包含控制流的信息的对象(类型)
    fpos_t          包含指定文件中位置的信息的对象(类型)
    size_t          无符号整数类型(type)
    

    18.(stdlib.h)

    C标准通用工具库
    该头定义了几个通用功能,包括动态内存管理,随机数生成,与环境的通信,整数算术,搜索,排序和转换。
          功能:
    (1)字符串转换:
    atof          将字符串转换为双精度(function)
    atoi          将字符串转换为整数(函数)
    Atol		  将字符串转换为长整数(函数)
    atoll         将字符串转换为long long整数(函数)
    strtod		  将字符串转换为双精度(function)
    strtof 		  将字符串转换为浮点数(函数)
    strtol        将字符串转换为长整数(函数)
    strtold       将字符串转换为long double (function)
    Strtoll       将字符串转换为long long整数(函数)
    strtoul       将字符串转换为无符号长整数(函数)
    strtoull      将字符串转换为无符号long long整数(函数)
    (2)伪随机序列生成:
    rand          生成随机数(函数)
    srand		  初始化随机数生成器(函数)
    (3)动态内存管理:
    calloc        分配和零初始化数组(函数)
    free          取消分配内存块(函数)
    malloc        分配存储块(功能)
    realloc       重新分配内存块(函数)
    (4)环境:
    abort         中止当前过程(功能)
    atexit        设置要在退出时执行的功能(功能)
    at_quick_exit 设置要在快速退出时执行的功能(功能)
    exit  		  终止调用过程(函数)
    getenv        获取环境字符串(函数)
    quick_exit    快速终止呼叫过程(功能)
    system        执行系统命令(功能)
    _Exit         终止调用过程(函数)
    (5)搜索和排序:
    bsearch       数组中的二进制搜索(函数)
    qsort         对数组的元素进行排序(函数)
    (6)整数算术:
    abs           绝对值(函数)
    div           积分除法(功能)
    labs          绝对值(函数)
    ldiv          积分除法(功能)
    llabs         绝对值(函数)
    lldiv         积分除法(功能)
    (7)多字节字符:
    mblen         获取多字节字符的长度(函数)
    mbtowc        将多字节序列转换为宽字符(函数)
    wctomb        将宽字符转换为多字节序列(函数)
    (8)多字节字符串:
    mbstowcs	  将多字节字符串转换为宽字符字符串(函数)
    wcstombs      将宽字符字符串转换为多字节字符串(函数)
    
        宏常量:
    EXIT_FAILURE  故障终止代码(宏)
    EXIT_SUCCESS  成功终止代码(宏)
    MB_CUR_MAX    多字节字符的最大大小(宏)
    NULL		  空指针(宏)
    RAND_MAX      rand返回的最大值(宏)
        种类:
    div_t		  div返回的结构(类型)
    ldiv_t		  ldiv返回的结构(类型)
    lldiv_t 	  lldiv返回的结构(类型)
    size_t		  无符号整数类型(type)
    

    19.(string.h)

    C字符串
    该头文件定义了几个函数来操纵C字符串和数组。
            功能:
    (1)复制中:
     Memcpy		  复制内存块(功能)
    memmove       移动内存块(功能)
    strcpy		  复制字符串(函数)
    strncpy       复制字符串中的字符(函数)
    (2)串联:
    strcat        连接字符串(函数)
    Strncat		  附加字符串中的字符(功能)
    (3)比较:
    memcmp		  比较两个内存块(函数)
    strcmp        比较两个字符串(函数)
    Strcoll		  使用语言环境比较两个字符串(函数)
    strncmp		  比较两个字符串的字符(函数)
    strxfrm		  使用语言环境转换字符串(函数
    (4)搜索:
    memchr		  在内存块中找到字符(功能)
    strchr		  找到字符串中第一个出现的字符(函数)
    strcspn		  获取跨度直到字符串中的字符(函数)
    strpbrk		  找到字符串中的字符(函数)
    strrchr		  找到字符串中最后一次出现的字符(函数)
    strspn		  获取字符串中字符集的范围(函数)
    strstr        找到子字符串(函数)
    strtok        将字符串拆分为标记(函数)
    
    其他:
    memset		  填充内存块(功能)
    strerror      获取错误消息字符串的指针(函数)
    strlen        获取字符串长度(函数)
        巨集:
    NULL          空指针(宏)
       种类:
    size_t        无符号整数类型(type)
    

    20.(tgmath.h)

    此标头定义了与中的函数相对应的宏函数<math.h>,但可以将其他非浮点类型用作参数:该
    
    函数中的每个函数<math.h>至少应将一个double作为参数(模组)被定义<tgmath.h>为具有相同语义但使用通用参数的宏:而是
    
    为这些通用参数提供的每个整数类型的参数都强制转换为double;的参数浮点类型而没有转化中使用(如直接float,double或long double)。
    
    此标头会自动包含<math.h>和<complex.h>:如果类型通用函数存在于该函数中(带有字符前缀),则该类型泛型函数也可以采用复杂值。<complex.h>"c"
    

    21.(time.h)

    C时间库
    该头文件包含用于获取和操作日期和时间信息的函数的定义。
         功能:
    (1)时间操纵:
    clock           时钟程序(功能)
    difftime		两次返回差(函数)
    mktime 			将tm结构转换为time_t (函数)
    time			获取当前时间(函数)
    (2)转换次数:
    asctime         将tm结构转换为字符串(函数)
    ctime			将time_t值转换为字符串(函数)
    gmtime			将time_t转换为tm作为UTC时间(函数)
    localtime       将time_t转换为本地时间(函数)
    strftime		将时间格式化为字符串(函数)
        宏常量:
    CLOCKS_PER_SEC  每秒时钟滴答声(宏)
    NULL            空指针(宏)
        :类型
    clock_t			时钟类型(type)
    size_t			无符号整数类型(type)
    time_t			时间类型(type)
    struct tm		时间结构(类型)
    

    22.(uchar.h)

    Unicode字符
    此标头提供对16位和32位字符的支持,适合使用UTF-16和UTF-32进行编码。
    
          种类:
    在C中,此标头定义两个宏:char16_t和char32_t,它们映射到适当大小的无符号整数类型(分别与uint_least16_t和uint_least32_t相同)。
    
    在C ++中,char16_t和char32_t是基本类型(因此,此标头未在C ++中定义此类宏)。
         功能
    c16rtomb		将16位字符转换为多字节序列(函数)
    c32rtomb		将32位字符转换为多字节序列(函数)
    mbrtoc16		将多字节序列转换为16位字符(函数)
    mbrtoc32		将多字节序列转换为32位字符(函数)
    兼容性
    此标头由扩展C99的技术报告首次在C中引入,并得到最新的C和C ++标准(均于2011年发布)完全支持。
          巨集:
    在C ++中,此标头定义了以下宏:
    

    在这里插入图片描述

    23.(wchar.h)

    宽字符
    该头文件定义了几个用于C宽字符串的函数。
        功能:
    (1)输入/输出:(大多数为<cstdio>函数的宽版本)
    fgetwc		从流中获取宽字符(函数)
    get			从流中获取宽字符串(函数)
    fputwc		将宽字符写入流(函数)
    fwide		将宽字符串写入流(函数)
    fwide       流方向(功能)
    fwprintf    将格式化的数据写入流(函数)
    fwscanf     从流中读取格式化的数据(函数)
    getwc       从流中获取宽字符(函数)
    getwchar	从stdin获取宽字符(函数)
    putwc		将宽字符写入流(函数)
    putwchar	将宽字符写入标准输出(函数)
    swprintf	将格式化的数据写入宽字符串(函数)
    swscanf		从字符串读取格式化的数据(函数)
    ungetwc		从流中删除宽字符(功能)
    vfwprintf	将可变参数列表中的格式化数据写入流(函数)
    vfwscanf 	将流中的格式化数据读取到变量参数列表(函数)中
    vswprintf 	将格式化的数据从变量参数列表写入大小已设置的缓冲区(函数)
    vswscanf	将宽字符串中的格式化数据读入变量参数列表(函数)
    vwprintf	将格式化的数据从变量参数列表打印到stdout (函数)
    vwscanf		将格式化的数据读入变量参数列表(函数)
    wprintf		将格式化的数据打印到标准输出(功能)
    wscanf		从stdin读取格式化的数据(函数)
    (2)通用实用程序:(<cstdlib>函数的宽版本)
    wcstod		将宽字符串转换为双精度(函数)
    wcstof 		将宽字符串转换为浮点数(函数)
    wcstol      将宽字符串转换为长整数(函数)
    wcstold 	将宽字符串转换为长整数(函数)
    wcstoll		将宽字符串转换为长整型(函数)
    wcstoul		将宽字符串转换为无符号长整数(函数)
    wcstoull 	将宽字符串转换为无符号的long long整数(函数)
    (3) 字符/字符串转换:(主要是<cstdlib>函数的扩展版本)
    btowc		将单字节字符转换为宽字符(函数)
    mbrlen		获取多字节字符的长度(函数)
    mbrtowc		将多字节序列转换为宽字符(函数)
    mbsinit		检查初始转换状态(功能)
    mbsrtowcs	将多字节字符串转换为宽字符字符串(函数)
    wcrtomb		将宽字符转换为多字节序列(函数)
    wctob		将宽字符转换为单字节(函数)
    wcsrtombs	将宽字符字符串转换为多字节字符串(函数)
    (4)字符串:(<cstring>函数的宽版本)
    wcscat		连接宽字符串(函数)
    wcschr		在宽字符串中找到第一个出现的字符(函数)
    wcscmp		比较两个字符串(函数)
    wcscoll		使用语言环境比较两个宽字符串(函数)
    wcscpy		复制宽字符串(函数)
    wcscspn		获取跨度直到宽字符串中的字符(函数)
    wcslen		获得宽的字符串长度(函数)
    wcsncat		附加宽字符串中的字符(功能)
    wcsncmp		比较两个宽字符串的字符(函数)
    wcsncpy		复制宽字符串中的字符(功能)
    wcspbrk		查找宽字符串中的字符(功能)
    wcsrchr		在宽字符串中找到最后出现的字符(函数)
    wcsspn		获取宽字符串中字符集的范围(函数)
    wcsstr		找到宽字符串的子字符串(函数)
    wcstok		将宽字符串拆分为标记(函数)
    wcsxfrm		使用语言环境转换宽字符串(函数)
    wmemchr		在宽字符块中查找字符(函数)
    wmemcmp		比较两个宽字符块(功能)
    wmemcpy		复制宽字符块(功能)
    wmemmove	移动宽字符块(功能)
    wmemset		填充宽字符数组(函数)
    (5)时间:(<ctime>函数的宽泛版本)
    wcsftime    将时间格式化为宽字符串(函数)
          种类:
    mbstate_t	多字节转换状态(类型)
    size_t		无符号整数类型(type)
    struct tm	时间结构(类型)
    wchar_t		宽字符(类型)
    wint_t		宽int型(type)
          宏常量:
    NULL		空指针(宏)
    WCHAR_MAX	wchar_t的最大值(常量)
    WCHAR_MIN	wchar_t的最小值(常量)
    WEOF		宽文件结尾(常量)
    

    24.(wctype.h)

    宽字符类型
    此标头声明了一组用于分类和转换单个宽字符的函数。
    
    有关如何使用“ C”语言环境对标准ASCII字符集进行分类的更多信息,请参见<cctype>。
    
           功能:
    (1)字符分类功能
    他们检查作为参数传递的字符是否属于某个类别:
    Iswalnum		检查宽字符是否为字母数字(函数)
    iswalpha		检查宽字符是否为字母(功能)
    iswblank 		检查宽字符是否为空白(功能)
    iswcntrl		检查宽字符是否为控制字符(功能)
    iswdigit		检查宽字符是否为十进制数字(功能)
    iswgraph		检查宽字符是否具有图形表示(功能)
    iswlower		检查宽字符是否为小写字母(功能)
    iswprint		检查是否可以打印宽字符(功能)
    iswpunct		检查宽字符是否为标点字符(功能)
    iswspace		检查宽字符是否为空格(功能)
    iswupper		检查宽字符是否为大写字母(功能)
    iswxdigit		检查宽字符是否为十六进制数字(函数)
    (2)字符转换功能
    在字母大小写之间转换的两个函数:
    towlower		将大写的宽字符转换为小写(函数)
    towupper		将小写的宽字符转换为大写(函数)
    (3)可扩展的分类/转换功能
    iswctype		检查宽字符是否具有属性(功能)
    towctrans		使用转换进行转换(函数)
    wctrans			返回字符转换(函数)
    wctype          返回字符属性(函数)
           种类:
    wctrans_t		宽字符转换(类型)
    wctype_t		宽字符类型(type)
    wint_t			宽字符整数型(type)
    
           常数:
    WEOF            宽文件结尾(常量)
    
    展开全文
  • Linux 和c++常见头文件

    千次阅读 2016-09-29 19:12:51
    在Linux下函数有很多头文件,下面列举了一些,希望大家喜欢^-^,给你顶,谢谢。  1、 Linux中一些头文件的作用:  :ANSI C。提供断言,assert(表达式)  :GCC。GTK,GNOME的基础库,提供很多有用的函数...
  • ISO C的标准头文件 POSIX定义的必须头文件 POSIX定义的可选头文件 limits.h中定义整型大小 基本系统数据类型
  • 深度学习pytorch代码各种常见头文件

    千次阅读 2018-06-27 11:27:54
    1. from __future__ import print_function 在开头加上from __future__ import print_function这句之后,即使在python2.X,使用print就得像python3.X那样加括号使用。python2.X中print不需要括号,而在python3.X中...
  • C/C++头文件一览 C、传统 C++ #include //设定插入点 #include //字符处理 #include //定义错误码 #include float.h> //浮点数处理 #include //文件输入/输出 #i
  • C、传统 C++#include //设定插入点#include //字符处理#include //定义错误码#include //浮点数处理#include //文件输入/输出#include //参数化输入/输出#include //数据流输入/输出#include //定义各种数据类型...
  • c语言常见头文件

    2019-08-24 15:53:09
    序号库类别头文件详细说明 1错误处理errno.h 2字符处理ctype.h 3地区化local.h 4数学函数math.h 5信号处理signal.h 6输入输出stdio.h 7实用工具程序stdlib.h 8字符串处理string.h 字符处理函数 本类别...
  • c++之常见头文件

    2019-08-18 03:09:26
    关于常见头文件 日常膜拜dalao:财神万岁!!!!!!!!!!!!!!!!!!!!!!! 日常凌晨三点水博客 #include //通用算法 #include // 该库主要是字符处理功能 1.isalnum() 检查字符c是十进制数还是...
  • C语言的头文件的作用是什么?來源:互聯網2011-11-26 19:45:43評論头文件和系统求助有时候我们只知道一个函数的大概形式,不记得确切的表达式,或者是不记得着函数在那个头文件进行了说明.这个时候我们可以求助系统....
  • 显然,头文件中的编译宏“#ifndef __INCvxWorksh、#define __INCvxWorksh、#endif” 的作用是防止该头文件被重复引用。 深层揭密extern "C"  extern "C" 包含双重含义
  • 其他常见头文件 unistd.h:提供通用的文件、目录、程序及进程操作的函数 errno.h:提供错误号errno的定义,用于错误处理 fcntl.h:提供对文件控制的函数 time.h:提供有关时间的函数 crypt.h:提供...
  • C/C++ 常见函数头文件

    2017-01-04 18:08:03
    stdlib: malloc
  • 目录: 一:#include作用 二:#include 的处理过程 三:#include 的用法有两种...六:常见头文件(库函数)如下 include是一个计算机专业术语 一指C/C++中包含头文件命令,用于将指定头文件嵌入源文件中 二...
  • 文件头文件尾总结 JPEG (jpg), 文件头:FFD8FF 文件尾:FF D9    PNG (png), 文件头:89504E47 文件尾:AE 42 60 82 GIF (gif), 文件头:47494638 文件尾:00 ...
  • C常见问题之头文件引用

    千次阅读 2012-08-28 16:17:31
    1.双引号:引用非标准库的头文件,编译器首先在程序源文件所在目录查找,如果未找到,则去系统默认目录查找,通常用于包含用户自定义的头文件。 2.尖扩号:只在系统默认目录(由用户在设置环境时设置的)或者括号内...
  • 常见的文件头文件

    2019-03-17 19:11:00
    JPEG (jpg), 文件头:FFD8FF 文件尾:FF D9 PNG (png), 文件头:89504E47 文件尾:AE 42 60 82GIF (gif), ...
  • C,C++头文件解释预览

    2012-06-12 10:54:40
    C,C++常见头文件 的解释预览说明等等
  • 首先来了解一下Linux中常见头文件有哪些 其实这些头文件都是根据各种国际标准定义出来的 1.ISO-C标准定义的头文件 ISO-C标准的意图是提供C程序的可移植性,使其能适合于大量不同的操作系统,而不只是UNIX系统。 ...
  • 1.为什么标准头文件都有类似以下的结构?#ifndef __INCvxWorksh#define __INCvxWorksh#ifdef __cplusplus extern "C" {#endif ...... #ifdef __cplusplus }#endif#endif 2.分析2.1头文件中的编译宏“#ifndef __...
  • 头文件

    2014-07-02 13:29:43
    有一些常见的例外,如单元测试代码和只包含一个main函数的cpp文件。 正确使用头文件在可读性,文件大小和性能上有很大差异。 下面的规则将指导您绕过头文件使用中的各种陷阱。 #define用法 所有头文件...
  • stm 常用头文件

    2018-04-13 14:51:00
    常见头文件 #include <stdio.h>#include <stdlib.h>#include <stdbool.h>#include <string.h>#include <stdint.h> 1. 格式化输入输出 <stdio.h> 2.字符串数字转数值,内存...
  • AVRGCC常见库文件头文件介绍

    千次阅读 2011-08-09 13:10:30
    一、库函数头文件介绍 库函数按不同的类别声明在不同的头文件中,以字母为序分别介绍头文件: ctype.h:字符类型函数 eeprom.h:EEPROM 访问函数 errno.h:错误处理函数 ina90.h:与IAR C兼容的头文件 ...
  • 为什么标准头文件都有类似以下的结构? #ifndef __INCvxWorksh#define __INCvxWorksh #ifdef __cplusplusextern "C" {#endif /*...*/ #ifdef __cplusplus}#endif #endif /* __INCvxWorksh */ 分析 显然,头文件中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 88,430
精华内容 35,372
关键字:

常见的头文件