歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux/Unix中的基本系統數據類型

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

日期:2017/2/28 15:53:29   编辑:Linux教程

歷史上,某些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高級環境編程》

Copyright © Linux教程網 All Rights Reserved