专栏首页黑泽君的专栏Linux的头文件和C/C++的头文件

Linux的头文件和C/C++的头文件

一、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>        事件跟踪

二、C常用头文件如下:

#include <assert.h>    //设定插入点
#include <ctype.h>     //字符处理
#include <errno.h>     //定义错误码
#include <float.h>     //浮点数处理
#include <iso646.h>       //对应各种运算符的宏
#include <limits.h>    //定义各种数据类型最值的常量
#include <locale.h>    //定义本地化C函数
#include <math.h>     //定义数学函数
#include <setjmp.h>       //异常处理支持
#include <signal.h>       //信号机制支持
#include <stdarg.h>       //不定参数列表支持
#include <stddef.h>       //常用常量
#include <stdio.h>     //定义输入/输出函数
#include <stdlib.h>    //定义杂项函数及内存分配函数
#include <string.h>    //字符串处理
#include <time.h>     //定义关于时间的函数
#include <wchar.h>     //宽字符处理及输入/输出
#include <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++常用头文件如下:

#include <algorithm>    //STL 通用算法
#include <bitset>     //STL 位集容器
#include <cctype>        //字符处理
#include <cerrno>      //定义错误码
#include <cfloat>      //浮点数处理
#include <ciso646>        //对应各种运算符的宏
#include <climits>     //定义各种数据类型最值的常量
#include <clocale>     //定义本地化函数
#include <cmath>      //定义数学函数
#include <complex>     //复数类
#include <csignal>        //信号机制支持
#include <csetjmp>        //异常处理支持
#include <cstdarg>        //不定参数列表支持
#include <cstddef>        //常用常量
#include <cstdio>      //定义输入/输出函数
#include <cstdlib>     //定义杂项函数及内存分配函数
#include <cstring>     //字符串处理
#include <ctime>      //定义关于时间的函数
#include <cwchar>      //宽字符处理及输入/输出
#include <cwctype>     //宽字符分类
#include <deque>      //STL 双端队列容器
#include <exception>    //异常处理类
#include <fstream>      //文件输入/输出
#include <al>        //STL 定义运算函数(代替运算符)
#include <limits>      //定义各种数据类型最值常量
#include <list>      //STL 线性列表容器
#include <locale>        //本地化特定信息
#include <map>       //STL 映射容器
#include <memory>        //STL通过分配器进行的内存分配
#include <new>           //动态内存分配
#include <numeric>       //STL常用的数字操作
#include <iomanip>     //参数化输入/输出
#include <ios>       //基本输入/输出支持
#include <iosfwd>     //输入/输出系统使用的前置声明
#include <iostream>    //数据流输入/输出
#include <istream>    //基本输入流
#include <iterator>      //STL迭代器
#include <ostream>    //基本输出流
#include <queue>     //STL 队列容器
#include <set>      //STL 集合容器
#include <sstream>    //基于字符串的流
#include <stack>     //STL 堆栈容器
#include <stdexcept>   //标准异常类
#include <streambuf>   //底层输入/输出支持
#include <string>     //字符串类
#include <typeinfo>      //运行期间类型信息
#include <utility>    //STL 通用模板类
#include <valarray>      //对包含值的数组的操作
#include <vector>    //STL 动态数组容器
————————————————————————————————
C99增加的部分
#include <complex.h>   //复数处理
#include <fenv.h>     //浮点环境
#include <inttypes.h>  //整数格式转换
#include <stdbool.h>   //布尔环境
#include <stdint.h>   //整型环境
#include <tgmath.h>   //通用类型数学宏

=============================================================================

  程序在使用一个函数之前,应该首先声明该函数。为了便于使用,通常的做法是把同一类函数或数据结构以及常数的声明放在一个头文件(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》一书。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • linux中#include <sys/stat.h>的位置

    linux中的gcc编译器默认是从 "cd /usr/include/" 中查找头文件的,但是在该目录下并没有发现sys子目录。那么这个sys到底对应于系统的哪...

    黑泽君
  • linux下查看包含的头文件的源文件

    我想查看linux下包含的一个头文件的源文件,如#include "a.h"。在C++编译器里直接右键就可以打开了,那么在linux下该怎么查看呢?或者怎么查看...

    黑泽君
  • VisualSVN Server 的安装(windows版本)

      地址:https://www.visualsvn.com/downloads/

    黑泽君
  • IOS和android都使用的网络编程头文件

    #include <errno.h> //提供错误号errno的定义,用于错误处理

    望天
  • C++ 标准库之 iomanip 、操作符 ios::fixed 以及 setprecision 使用的惨痛教训经验总结

    本菜鸡自从退役之后就再也没怎么敲过 C++ 代码,在 C++ 语言下,求解关于浮点数类型的问题时,之前有碰到类似的情况,但是似乎都没有卡这块的数据,基本上用一个...

    Angel_Kitty
  • CSP-J/S考试中是否可以使用万能头文件

    假如DevC++的安装路径为"C:\ProgramFiles (x86)\Dev-Cpp",则bits/stdc++.h的完整路径为"C:\Program Fi...

    海天一树
  • L005Linux和androidNDK之c语言中的正则表达式

    上善若水.夏
  • c语言_头文件

    landv
  • application.yml 配置失效 ,maven 配置失效,扫描不到配置?

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    suveng
  • 运行程序时报错“Value too large for defined data type”

    此错误对应的出错代码为EOVERFLOW,原因可能是目标文件超过2GB大小。

    一见

扫码关注云+社区

领取腾讯云代金券