C/C++编程常引用到的头文件

1.POSIX标准
  POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称,其正式称呼为IEEE 1003,而国际标准名称为ISO/IEC 9945。
  POSIX标准目的是提高软件可移植性。通俗地说,即是一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统上编译执行,即使是来自不同的操作系统厂商。如常用的桌面系统Windows、Linux等,及其他符合POSIX标准的系统或者库,如RT-Thread(RTOS)实时系统、Qt库,或者我们程序员编写的符合POSIX的C/C++程序库。因此,基于POSIX标准开发,非常便于程序的移植,常用POSIX头文件如下。

#include <dirent.h>         //目录项  
#include <fcntl.h>          //文件控制  
#include <fnmatch.h>        //文件名匹配类型  
#include <glob.h>           //路径名模式匹配类型  
#include <grp.h>            //组文件  
#include <netdb.h>          //网络数据库操作  
#include <pwd.h>            //口令文件  
#include <regex.h>          //正则表达式  
#include <tar.h>            //TAR归档值  
#include <termios.h>        //终端I/O  
#include <unistd.h>         //符号常量  
#include <utime.h>          //文件时间  
#include <wordexp.h>        //字符扩展类型  
-------------------------  
#include <arpa/inet.h>      //INTERNET定义  
#include <net/if.h>         //套接字本地接口  
#include <netinet/in.h>     //INTERNET地址族  
#include <netinet/tcp.h>    //传输控制协议定义  
-------------------------   
#include <sys/mman.h>       //内存管理声明  
#include <sys/select.h>     //Select函数  
#include <sys/socket.h>     //套接字借口  
#include <sys/stat.h>       //文件状态  
#include <sys/times.h>      //进程时间  
#include <sys/types.h>      //基本系统数据类型  
#include <sys/un.h>         //UNIX域套接字定义  
#include <sys/utsname.h>    //系统名  
#include <sys/wait.h>       //进程控制  
-------------------------  
//POSIX定义的XSI扩展头文件  
#include <cpio.h>           //cpio归档值   
#include <dlfcn.h>          //动态链接  
#include <fmtmsg.h>         //消息显示结构  
#include <ftw.h>            //文件树漫游  
#include <iconv.h>          //代码集转换使用程序,如GB2312、UTF-8  
#include <langinfo.h>       //语言信息常量  
#include <libgen.h>         //模式匹配函数定义  
#include <monetary.h>       //货币类型  
#include <ndbm.h>           //数据库操作  
#include <nl_types.h>       //消息类别  
#include <poll.h>           //轮询函数  
#include <search.h>         //搜索表  
#include <strings.h>        //字符串操作  
#include <syslog.h>         //系统出错日志记录  
#include <ucontext.h>       //用户上下文  
#include <ulimit.h>         //用户限制  
#include <utmpx.h>          //用户帐户数据库   
----------------------- 
#include <sys/ipc.h>        //IPC(命名管道)  
#include <sys/msg.h>        //消息队列  
#include <sys/resource.h>   //资源操作  
#include <sys/sem.h>        //信号量  
#include <sys/shm.h>        //共享存储  
#include <sys/statvfs.h>    //文件系统信息  
#include <sys/time.h>       //时间类型  
#include <sys/timeb.h>      //附加的日期和时间定义  
#include <sys/uio.h>        //矢量I/O操作  
----------------------- 
//POSIX定义的可选头文件  
#include <aio.h>            //异步I/O  
#include <mqueue.h>         //消息队列  
#include <pthread.h>        //线程  
#include <sched.h>          //执行调度  
#include <semaphore.h>      //信号量  
#include <spawn.h>          //实时spawn接口  
#include <stropts.h>        //XSI STREAMS接口  
#include <trace.h>          //事件跟踪  

2.C标准(C99、C11)
  C标准,即ANSI C,是美国国家标准协会(ANSI)对C语言发布的标准。使用C语言开发时应该遵循ANSI C文档的要求,以便该C语言代码具有良好的跨平台特性。ANSI C支持众多编译器,C语言作为高级语言的鼻祖,应用于计算机各行业中。C标准经历了C89、C90、C99、C11的几个完善过程,目前最新的标准是C11。

#include <assert.h>    //设定插入点,提供断言,assert(表达式)。
#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>     //宽字符分类  
#include <stdint.h>     //定义了几种扩展的整数类型和宏

3.C++标准(C++ 11及以上)
  C++作为C语言的衍生语言,几乎包括了C语言的全部特性,同时拥有自己与C语言本质的区别及的特有优势(面向对象与向过程)。C++作为面向对象语言,具有极高的效率,一般应用在游戏、图像处理、视频流媒体等,同时在一些情况下,有些人建议少用C++的STL(Standard Template Library)库,效率问题?一般情况下,使用标准库,会大大提高开发效率,非特别严格的情况执行效率几乎可以忽略。对于Qt(C++)开发,Qt本身有自己一套封装库,与STL库功能类似,开发Qt程序可以不用STL库,直接使用Qt本身的封装库,函数接口上命名上基本一致,使用起来也容易快速上手。C++标准也经历了C++ 98、C++ 03、C++ 11、C++14、C++ 17,常规C++程序开发,使用到的是C++03标准,从C++ 11开始,增加许多新特性,这方面还需要在实际项目中体验。C++ 17也即将发布。

//传统C++(C++ 03以前)  
#include <fstream.h>    //改用<fstream>  
#include <iomanip.h>    //改用<iomainip>  
#include <iostream.h>   //改用<iostream>  
#include <strstrea.h>   //该类不再支持,改用<sstream>中的stringstream  
//标准C++(C++ 03、C++ 11至后面标准) 
#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 <functional>   //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 动态数组容器  
posted @ 2018-06-05 20:20  Acuity  阅读(319)  评论(0编辑  收藏  举报