linux下编程常用头文件一览
<assert.h > 验证程序断言
<cpio.h > cpio归档值
<ctype.h > 字符类型
<dirent.h > 目录项
<errno.h > 出错码
<fcntl.h > 文件控制
<float.h > 浮点常数
<signal.h > 信号
<stdarg.h > 可变参数表
<stddef.h > 标准定义,无论什么头文件都会把它包含进来,内有类如下定义:size_t, ptrdiff_t, wchar_t,NULL之类。
<stdio.h > 标准I/O库
<stdlib.h > 公用函数
<string.h > 字符串操作
char *strsep( char **, const char *), 具体用法见:http://infotech.blogbus.com/logs/20110935.html
Char *strtok( char *, const char *), 具体用法见:http://baike.baidu.com/view/1028553.htm
<tar.h > tar归档值
<termios.h > 终端I/O
<time.h > 时间和日期
<ulimit.h > 用户限制
<unistd.h > linux/unix系统调用
exec function series usage:http://www.dzsc.com/data/html/2009-12-22/81036.html
argv[0] can be "/bin/ls" or dirs.
access(char *, int mode ), usage:http://dev.firnow.com/course/3_program/vc/vc_js/20090327/163611.html
fork()
<utime.h > 文件时间
<sys/ipc.h > IPC
<sys/msg.h > 消息队列
<sys/sem.h > 信号量
<sys/shm.h > 共享存储
<sys/stat.h > 文件状态
<sys/times.h > 进程时间
<sys/types.h > 原系统数据类型
<sys/wait.h > 进程控制
wait /exit
C/C++头文件一览
C、传统C++
#include <assert.h> //设定插入点
#include <ctype.h> //字符处理
#include <errno.h> //定义错误码
#include <float.h> //浮点数处理
#include <fstream.h> //文件输入/输出
#include <iomanip.h> //参数化输入/输出
#include <iostream.h> //数据流输入/输出
#include <limits.h> //定义各种数据类型最值常量
#include <locale.h> //定义本地化函数
#include <math.h> //定义数学函数
#include <stdio.h> //定义输入/输出函数
#include <stdlib.h> //定义杂项函数及内存分配函数
#include <string.h> //字符串处理
#include <strstrea.h> //基于数组的输入/输出
#include <time.h> //定义关于时间的函数
#include <wchar.h> //宽字符处理及输入/输出
#include <wctype.h> //宽字符分类
标准C++ (同上的不再注释)
#include <algorithm> //STL通用算法
#include <bitset> //STL位集容器
#include <cctype>
#include <cerrno>
#include <clocale>
#include <cmath>
#include <complex> //复数类
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque> //STL双端队列容器
#include <exception> //异常处理类
#include <fstream>
#include <functional> //STL定义运算函数(代替运算符)
#include <limits>
#include <list> //STL线性列表容器
#include <map> //STL映射容器
#include <iomanip>
#include <ios> //基本输入/输出支持
#include <iosfwd> //输入/输出系统使用的前置声明
#include <iostream>
#include <istream> //基本输入流
#include <ostream> //基本输出流
#include <queue> //STL队列容器
#include <set> //STL集合容器
#include <sstream> //基于字符串的流
#include <stack> //STL堆栈容器
#include <stdexcept> //标准异常类
#include <streambuf> //底层输入/输出支持
#include <string> //字符串类
#include <utility> //STL通用模板类
#include <vector> //STL动态数组容器
#include <cwchar>
#include <cwctype>
using namespace std;
C99增加
#include <complex.h> //复数处理
#include <fenv.h> //浮点环境
#include <inttypes.h> //整数格式转换
#include <stdbool.h> //布尔环境
#include <stdint.h> //整型环境
#include <tgmath.h> //通用类型数学宏
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)及共享内存的函数
想知道一个函数需要包含哪些头文件,需要连接哪些库,可以用man看一下$> man function_name
比如
man 2 socket
告诉你需要包含:
#include <sys/types.h>
#include <sys/socket.h>
man sin:
#include <math.h>
Link with -lm.
有几种方法可以定位一个文件:
locate xxxx
whereis xxxx
find /usr/include -name "xxxx "
不过你的那个文件有可能不是标准的系统带的头文件,可能是书中自己写的头文件