一:前言
進(jìn)行l(wèi)inux下C/C++服務(wù)端后臺開發(fā)的都知道践磅,需要跟各種頭文件打交道。
比如使用printf函數(shù)則需要引用#include 赁遗,使用STL的map容器則要#include 延蟹,使用socket網(wǎng)絡(luò)編程則要#include 押赊,
那么我考考你uint32_t是在哪個頭文件定義的呢每辟?sleep函數(shù)又是在哪個頭文件剑辫?open和close是在同一個頭文件里嗎?
是不是有點一時半會答不上來渠欺,有沒有好的方法能梳理頭文件呢妹蔽,把頭文件進(jìn)行分門別類呢?
答案是可以的挠将。
我把頭文件分為以下三類:
C標(biāo)準(zhǔn)頭文件:一共29個頭文件胳岂。?http://en.cppreference.com/w/c/header點擊打開鏈接
C++標(biāo)準(zhǔn)頭文件:除C標(biāo)準(zhǔn)庫外,還包括STL標(biāo)準(zhǔn)庫等10+個頭文件?http://www.cplusplus.com/reference/stl/ 舔稀。把C標(biāo)準(zhǔn)頭文件放到std的命名空間里乳丰,文件名統(tǒng)一加上c前綴,如#include 改成#include 外内贮,
linux系統(tǒng)頭文件:操作系統(tǒng)相關(guān)产园,如socket網(wǎng)絡(luò)、共享內(nèi)存夜郁、信號量等什燕,常用的就10+左右。http://pubs.opengroup.org/onlinepubs/7908799/headix.html
二:C標(biāo)準(zhǔn)庫
#include 字符串操作相關(guān)
memcpy /strcpy 區(qū)別拂酣?
memset
strncpy
#include 標(biāo)準(zhǔn)輸入輸出
fopen/fwrite
printf/scanf
#include 標(biāo)準(zhǔn)輸入輸出
fopen/fwrite
printf/scanf
#include 常用的一些函數(shù)庫
strtol/atoi
malloc/free
rand
qsort
abs/div
size_t
#include 函數(shù)庫
sin/cos
pow/sqrt
ceil/floor
#include
uint32_t
SIZE_MAX
#include
islower
toupper
#include
time
mktime
#include ...
三秋冰、C++標(biāo)準(zhǔn)庫
#include?
chown()
close()/write()/read()
fsync()
sleep()/usleep()
getpid()
#include
open()
create()
fcntl()
#include
#include?
open()
create()
fcntl()
#include?
sys目錄下
五、結(jié)語
這樣是不是一目了然婶熬,清晰很多剑勾。