《基于UNIX/Linux的C系統(tǒng)編程》

第二章 文件操作

1. 在UNIX系統(tǒng)中,對(duì)文件的操作方法有兩種:基于標(biāo)準(zhǔn)庫(kù)函數(shù)的文件操作和基于系統(tǒng)調(diào)用的文件操作,二者應(yīng)用不同,各具優(yōu)勢(shì)。

2. UNIX系統(tǒng)把數(shù)據(jù)存放在文件中,可以通過(guò)系統(tǒng)調(diào)用來(lái)操作文件,這些系統(tǒng)調(diào)用有open、create、read、write、lseek和close。

3. 進(jìn)程對(duì)文件的讀/寫(xiě)都要通過(guò)文件描述符,文件描述符表示文件和進(jìn)程之間的連接。

4. 每次系統(tǒng)調(diào)用都會(huì)導(dǎo)致目態(tài)(用戶(hù)態(tài)),與管態(tài)(核心態(tài))之間的切換以及內(nèi)核代碼的執(zhí)行,所以盡量減少程序中系統(tǒng)調(diào)用發(fā)生的次數(shù)有助于提高程序的運(yùn)行效率。

5. 程序可以通過(guò)緩沖技術(shù)來(lái)減少程序調(diào)用的次數(shù),僅當(dāng)寫(xiě)緩沖區(qū)滿(mǎn)或讀緩沖區(qū)為空時(shí)才調(diào)用內(nèi)核服務(wù)。

6. UNIX內(nèi)核可以通過(guò)內(nèi)核緩沖區(qū)來(lái)減少訪(fǎng)問(wèn)磁盤(pán)I/O的次數(shù)。

7. 磁盤(pán)上有文件和目錄,文件和目錄都是有內(nèi)容和屬性的。文件的內(nèi)容可以是任意的數(shù)據(jù),而目錄的內(nèi)容只能是文件名或目錄名的列表。

8. 目錄中的文件名或目錄名指向文件或其他目錄,內(nèi)核提供了系統(tǒng)調(diào)用來(lái)讀取目錄的內(nèi)容,以及讀取和修改文件的屬性。

9. 文件的類(lèi)型,文件的訪(fǎng)問(wèn)權(quán)限和特殊屬性,被編碼到一個(gè)十六位整數(shù)中,可以通過(guò)掩碼技術(shù)來(lái)讀取這些信息 。

10. UNIX文件系統(tǒng)包含3個(gè)主要部分:超級(jí)塊、i節(jié)點(diǎn)表和數(shù)據(jù)區(qū)域。文件內(nèi)容,存儲(chǔ)在數(shù)據(jù)區(qū),文件屬性存儲(chǔ)在i節(jié)點(diǎn)上。i節(jié)點(diǎn)是文件的唯一標(biāo)識(shí)。

11. 相同的i節(jié)點(diǎn)可能以不同的名字在若干個(gè)目錄中出現(xiàn)。每個(gè)入口被稱(chēng)為指向文件的硬鏈接。符號(hào)連接是通過(guò)文件名引用文件,而不是i節(jié)點(diǎn)號(hào)。

12. 若干個(gè)文件系統(tǒng)的目錄樹(shù)可被整合成一棵樹(shù)。內(nèi)核將一個(gè)文件系統(tǒng)的目錄連接到另一個(gè)文件系統(tǒng)的根的操作稱(chēng)為裝載(掛載)。

13. 磁盤(pán)文件和設(shè)備文件都有名字,屬性和權(quán)限。普通的文件系統(tǒng)調(diào)用open、create、read、write、lseek和close均可被應(yīng)用于設(shè)備文件。文件權(quán)限位以同樣的方式應(yīng)用于控制設(shè)備文件和磁盤(pán)文件的訪(fǎng)問(wèn)。

14. 在處理和傳輸數(shù)據(jù)方面,到磁盤(pán)文件的連接不同于到設(shè)備文件的連接。內(nèi)核中管理與設(shè)備連接的代碼被稱(chēng)為設(shè)備驅(qū)動(dòng)程序。通過(guò)調(diào)用fcntl和ioctl函數(shù),進(jìn)程可以讀取和改變?cè)O(shè)備驅(qū)動(dòng)程序的設(shè)置。

15. 函數(shù)tcgetattr和函數(shù)tcsetattr專(zhuān)門(mén)用來(lái)提供對(duì)終端驅(qū)動(dòng)器的控制。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容