訪問檔案方式

2021-08-30 23:54:12 字數 625 閱讀 9103

訪問基於磁碟的檔案很複雜,既牽涉到塊裝置的處理,也涉及到磁碟快取記憶體的處理。

訪問檔案的方式有一下幾種:

1. 規範模式

系統呼叫read()和 write()來訪問。系統呼叫read()將阻塞呼叫程序,直到資料被拷貝到使用者態位址空間。但系統呼叫write()不同,它在資料被拷貝到頁快取記憶體(延遲寫)後馬上就結束。

2. 同步模式

同步模式下檔案開啟後,標誌o_sync 置1或稍後由系統呼叫fcntl()對其置1.這個標誌只影響寫操作,它將阻塞呼叫程序,直到資料有效的寫入磁碟。

3. 記憶體對映模式

記憶體對映模式下檔案開啟後,應用程式發出系統呼叫mmap()將檔案對映到記憶體中。因此,檔案就成為了ram中的乙個位元組陣列,應用程式就可以直接訪問陣列元素,而不需要系統呼叫read(),write(),lseek().

4. 直接i/o模式

直接i/o模式下檔案開啟後,標誌o_direct置1。任何讀寫操作都將資料在使用者態位址空間與磁碟間直接傳送而不通過頁快取記憶體。

5. 非同步模式

非同步模式下,檔案的訪問可以有兩種方法,即通過一組posix api或linux特有的系統呼叫來實現。所謂非同步模式就是就是資料傳輸請求並不阻塞呼叫程序,而是在後台執行,同時應用程式繼續它的正常執行。

系統呼叫方式訪問檔案

linux 系統中訪問檔案的方法 1.linux 系統呼叫 2.基於 c語言的訪問 系統呼叫 建立 int creat const char filename,mode t mode filename 要建立的檔名 包含路徑,預設為當前路徑 mode 建立模式 常見建立模式 s irusr 可讀 s...

幾種訪問檔案的方式。

我們知道,讀取和寫入檔案i o操作都呼叫作業系統提供的介面,因為磁碟裝置是由作業系統管理的,應用程式要訪問物理裝置只能通過系統呼叫的方式來工作。讀和寫分別對應read 和write 兩個系統呼叫。而只要是系統呼叫就可能存在核心空間位址和使用者空間位址切換的問題,這是作業系統為了保護系統本身的執行安全...

系統呼叫的方式訪問檔案

1 建立檔案 int create const char filename mode t mode 建立檔案。filename為檔案路徑,mode為檔案許可權,如 s irusr 可讀 s irwxu 可讀 可寫 可執行。也可以用數字表示,如 0755。2 檔案描述 在linux中,所有開啟的檔案都...