Linux/Unix中的基本系統數據類型

歷史上,某些UNIX變量已與某些C數據類型聯繫在一起,例如,歷史上主、次設備號存放
在一個16位的短整型中, 8位表示主設備號,另外 8位表示次設備號。但是,很多較大的系統需
要用多於 256個值來表示其設備號,於是,就需要有一種不同的技術。
(確實, SVR4用32位表
示設備號:14位用於主設備號,18位用於次設備號。
)
頭文件<sys/types.h>中定義了某些與實現有關的數據類型,它們被稱之爲基本系統數據類

型(primitive system data type)
。有很多這種數據類型定義在其他頭文件中。在頭文件中這些
數據類型都是用C的typedef設施來定義的。它們絕大多數都以 _t 結尾。表2-8中列出了本書將使
用的基本系統數據類型。

caddr_t                內存地址

clock_t                 時鐘滴答計數器(進程時間)
comp_t                 壓縮的時鐘滴答
dev_t                    設備號(主和次) 
fd_set                   文件描述符集
fpos_t                   文件位置
gid_t                     數值組ID
ino_t i                   節點編號
mode_t                 文件類型,文件創建方式
n1ink_t                目錄項的連接計數
off_t                      文件長度和位移量(帶符號的)
pid_t                     進程ID和進程組ID(帶符號的) 
ptrdiff_t                 兩個指針相減的結果(帶符號的)
r1im_t                   資源限制
sig_atomic_t        能原子地存取的數據類型
sigset_t                 信號集
size_t                    對象(例如字符串)長度(不帶符號的)
ssize_t                  返回字節計數的函數(帶符號的)
time_t                   日曆時間的秒計數器( 1.10節)
uid_t                     數值用戶ID

wchar_t                能表示所有不同的字符碼


用這種方式定義了這些數據類型後,
在編譯時就不再需要考慮隨系統不同而變的實施細節,
在本書中涉及到這些數據類型的地方,我們會說明爲什麼使用它們。

自《Unix高級環境編程》

發佈了53 篇原創文章 · 獲贊 12 · 訪問量 50萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章