檔案類型:
普通檔案(regular file)----普通資料.
目錄檔案(directory file)----包含其它檔案名和指向這些檔案資訊的指針.
快特殊檔案(black spcial file)----提供對"塊裝置"帶緩沖的通路,資料I/O都是以"塊"進行的.
字元特殊檔案(character special file)----提供對"字元裝置"不帶緩沖的通路,資料I/O時長度是可變的.
FILO(first input first output)----用于程序間通信,也稱管道(named pipe).
套接字(socket)----程序間網絡通信.
符号連結(symbolic link)----本身沒有真正的檔案資料,它指向另外一個檔案.
消息隊列,信号量,共享存儲對象也可以表示為檔案.
标準
UNIX程式設計環境和C程式設計語言标準化.标準化有多種,例如ISO C制定的.
UNIX标準不同,同它相關的或者能夠支援的标準C庫也不完全相同.例如關鍵字,頭檔案(及其相關的功能),系統接口/頭檔案及定義,實用程式等等,有些标準有,有些沒有.
UNIX标準有多種,實作也有多種.
ISO C的頭檔案依賴于OS所配置的C編譯器版本.
ISO C定義的限制都是編譯時限制.檔案<limits.h>定義了C的限制,例如長整型最大值等等.<stdio.h>定義了TMP_MAX,這是臨時檔案名的最長長度.
POSIX也定義了不少限制,這些大多同OS實作有關.例如登入名的最大長度,指向一個檔案的連接配接數等等,這些限制同樣可以在<limits.h>中找到.
其它标準也有類似的限制.通過pathconf/sysconf/fpathconf函數可以得到某種限制.
如果編寫可移植性應用程式,那麼應用程式應該能夠滿足不同平台的要求,在編譯時刻需要支援同平台相關的選項,其實也就是不同标準/平台定義的功能測試宏(feature test macro).
例如,如果在編譯一個程式時,希望它隻是用POSIX的定義而不使用任何實作定義的限制,就需要定義_POSIX_C_SOURCE.所有POSIX頭檔案都定義此宏,就能排除其它的定義.
_POSIX_C_SOURCE,_XOPEN_SOURCE,__STDC__(ISO C的)都是feature test macro.
本文轉自jetyi51CTO部落格,原文連結:http://blog.51cto.com/jetyi/816662 ,如需轉載請自行聯系原作者