linux下的標頭檔案 及C/C++標頭檔案 一覽表
linux下程式設計常用標頭檔案一覽
==============================================================================================
<assert.h > 驗證程式斷言
<cpio.h > cpio歸檔值
<ctype.h > 字元型別
<dirent.h > 目錄項
<errno.h > 出錯碼
<fcntl.h >
<float.h > 浮點常數
<signal.h > 訊號
<stdarg.h > 可變引數表
<stddef.h > 標準定義
<stdio.h > 標準I/O庫
<stdlib.h > 公用函式
<string.h > 字串操作
<tar.h > tar歸檔值
<termios.h > 終端I/O
<time.h >
<ulimit.h > 使用者限制
<unistd.h > 符號常數
<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 > 程序控制
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 "
不過你的那個檔案有可能不是標準的系統帶的標頭檔案,可能是書中自己寫的標頭檔案