您好,登錄后才能下訂單哦!
本文內容摘自《Unix高級環境編程》第二版,如有錯誤,請指明,謝謝!
同時本文參考FreeBSD的sys/types.h文件對基本系統數據類型作進一步了解。
Unix系統的sys/types.h文件定義了某些與實現相關的數據類型,稱為基本系統數據類型(primitive system data type)。這些數據類型都是用C的typedef來定義,并且都是大多數都是以_t結尾的。下面將列出部分基本系統數據類型。
數據類型 說明 FreeBSD中定義說明
caddr_t 核心地址 定義為 char * 類型
clock_t 時鐘滴答計數器 定義為 __clock_t,每秒鐘的時間滴答數為 CLOCKS_PER_SEC(FreeBSD中,此定義在time.h)
comp_t 壓縮的時鐘滴答數 定義在 sys/acct.h中,為 uint16_t
dev_t 設備號(主和次) 定義為 __dev_t,設備號或 struct cdev
fd_set 文件描述符集 定義在 sys/select.h 中,為 struct fd_set,可參考 select 系統調用。
fpos_t 文件位置 定義在 stdio.h 中,為 __off_t 類型
gid_t 用戶組ID 定義為 __gid_t 類型
ino_t i節點編號 定義為 __ino_t 類型
mode_t 文件類型,文件創建模式 定義為 __mode_t 類型
nlink_t 目錄項的連接計數器 定義為 __nlink_t 類型
off_t 文件大小和偏移量,帶符號 定義為 __off_t 類型,還定義 uoff_t(__uint64_t),表示無符號
pid_t 進程IP和進程組ID 定義為 __pid_t 類型
ptrdirr_t 兩指針相減的結果 定義在 sys/stddef.h 中,定義為 __ptrdiff_t 類型
rlim_t 資源限制 定義為 __rlim_t 類型
sig_atomic_t 能原子訪問的數據類型 與CPU架構相關,對i386,定義在 i386/include/signal.h 中
sigset_t 信號集 定義在 sys/select.h 和 sys/signal.h 中,均為 __sigset_t
size_t 對象字節數大小,不帶符號 定義為 __size_t 類型
ssize_t 函數返回字節數大小,帶符號 定義為 __ssize_t 類型
time_t 日歷時間的計時器 定義為 __time_t 類型,與CPU架構相關
uid_t 數值用戶ID 定義為 __uid_t 類型
wchar_t 能表示所有不同的字符碼 在 stddef.h stdlib.h wchar.h 中均有定義,定義為 __wchar_t,而__wchar_t 定義在 sys/_types.h 中,定義為 __ct_rune_t,而 __ct_rune_t 定義為 int
在FreeBSD中,以上基本系統數據類型中,__XXX_t 基本上與CPU架構有關,如 i386,則定義在 i386/include/_types.h 中,但并非所有的 __XXX_t 類型都是這樣,如 __wchar_t 就不是。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。