1. 程式人生 > >深入理解計算機系統 第十章 系統級I/O

深入理解計算機系統 第十章 系統級I/O

關於 內核 檢索 執行 循環 讀取 當前 讀寫 原因

很多高級語言都提供了執行 I/O 的較高級別的函數。為什麽我們還要學習 Unix I/O?

原因:
1、由於 I/O 和其他系統概念之間有循環依賴關系,故了解 Unix I/O 將幫助我們理解其他的系統概念

2、有些特殊情況,只能或最好使用 Unix I/O。比如標準 I/O 庫沒有提供讀取文件元數據(文件大小和文件創建時間)的方式

由於所有的 I/O 設備都被模型化為文件,所有的輸入和輸出都被當做對相應文件的讀和寫來執行。使得所有的輸入和輸出都能以一種統一且一致的方式來執行。

一般有以下幾種輸入輸出操作:
1、打開文件

2、改變當前的文件位置

3、讀寫文件

4、關閉文件

Linux 文件的類型包含以下幾種:

1、普通文件

2、目錄

3、套接字

Linux 內核將所有文件都組織成一個目錄層次結構,由名為 / 的根目錄確定

進程通過 open 函數打開一個已存在的文件或者創建一個新的文件,通過 read 和 write 函數來執行輸入和輸出。

應用程序能夠通過調用 stat 和 fstat 函數,檢索到關於文件的信息(有時也稱為文件的元數據)

應用程序可以用 readdir 系列函數來讀取目錄的內容

深入理解計算機系統 第十章 系統級I/O