本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/wubin1124/archive/2009/12/09/4971359.aspx
一、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》一書。