1. 程式人生 > >第十章 系統級I/O

第十章 系統級I/O

程序 描述 個數 方式 網絡 文件鏈接 允許 source linu

Unix/ I/O:

這種將設備優雅地映射為文件的方式,允許Linux內核引出一個簡單、低級的應用接口,成為Unix I/O,這使得所有的輸入和輸出都能以一種統一且一致的方式來執行:

1)打開文件

2)Linux shell創建的每個進程開始時都有三個打開的文件:

標準輸入、標準輸出、標準錯誤

3)改變當前的文件位置(從文件開頭起始的字節偏移量)

4)讀寫文件

5)關閉文件

文件:

普通文件:包含任意數據,但是應用程序常常要區分文本文件和二進制文件。

目錄:一組文件鏈接的集合,每個鏈接對應一個文件,每個目錄至少包含兩個鏈接,一個是“.”對應當前目錄自身的鏈接,一個是“..”對應上級父目錄的鏈接。

套接字:用來與另一個進程進行跨網絡通信

共享文件:

內核用三個數據結構來表示打開的文件:

描述符表:每個進程都擁有一個獨立的描述符表, 它的表項是由該進程打開的描述符來索引的。

文件表:打開文件的集合由該表來維護,所有進程共享該表,文件表有個表項,它是由三個部分組成,分別是:該文件的位置,描述符表的應用計數,和v-node表的表項指針。

v-node表:所有進程共享該表

第十章 系統級I/O