unix 系統支援不同程序共享開啟檔案,下面解說核心用於所有i/o的資料結構
核心使用了三種資料結構,它們之間的關係決定了檔案共享方面乙個程序對另外乙個程序可能產生的影響
每個程序在程序表中有乙個記錄項,每個記錄項中有一張開啟檔案的描述符的表,每個描述符佔一項,與每個描述符相關聯的是:(a)檔案描述符 (b)指向檔案表項(核心維護的檔案表)的指標
核心為所有開啟檔案維持一張檔案表,每個檔案表項包含:(a)檔案狀態標誌(讀,寫,增寫,同步,非阻塞等)(b)當前檔案位移量(c)指向該檔案v節點表項的指標每個開啟的檔案都有乙個v節點結構,v節點包含了檔案型別和對此檔案進行各種操作的函式指標資訊。對於大多數檔案,v節點還包含了該檔案的i節點(索引節點),這些資訊總是在開啟檔案的時候從盤上讀入記憶體的,所以所有關於檔案的資訊都是快速可使用的,例如,i節點包含了檔案的所有者,檔案長度,檔案所在的裝置,指向檔案在盤上所使用的實際資料塊的指標
unix環境高階程式設計 檔案i o
一 檔案描述符 對於核心,通過檔案描述符來管理檔案。什麼是檔案描述符?在unix中,用open或者create建立幾個檔案時候,核心向程序返回乙個整數,用來記錄此檔案。以後對檔案進行操作的時候,就用此檔案描述符做引用。二 open函式 open函式用於建立乙個檔案,函式返回檔案描述符。cpp vie...
UNIX環境程式設計基本函式 檔案IO
參考 unix環境高階程式設計 中文版第三版 程式設計環境 os x 10.11.5 xcode 7.3.1 下面介紹各類檔案i o操作。include int open const char path,int oflag,int openat int fd,const char path,int ...
《UNIX環境高階程式設計》 I O
不帶緩衝i o open read write lseek close等 標準i o 帶緩衝 fopen fclose fgets fputs fgetc fputc fwrite fread 標準i o對每個i o流自動進行快取管理 標準i o函式通常呼叫malloc來分配快取 它提供了三種型別的...