深刻理解計算機系統(第二版)----之1:(三:程序間的交互和通訊)系統級 IO

IO是主存和外部設備之間拷貝數據的過程,全部語言的運行時系統都提供執行IO的較高級別工具,例如ANSI C提供標準IO庫,包含想printfscanf這樣執行帶緩衝區的IO函數,C++語言用他的重載操做符<<>>提供了相似功能。網絡

10.1 unix IO數據結構

一個io文件就是一個m字節的序列,全部io設備,如磁盤 網絡和終端,都被模型化爲文件,全部輸入輸出都被看成對文件的讀寫來執行,這種吧設備映射爲文件的方式,容許unix內核引出一個簡單的應用接口即unix IO,這使得全部IO都能以一種統一且一致的方式來執行。函數

1)打開文件:一個應用程序經過要求內核打開響應的文件,宣告訪問一個IO設備工具

內核返回一個小的非負整數,叫作描述符。spa

Unix外殼建立的每一個進程開始時候都有誰那個打開的文件,標準輸入描述符爲0,標準輸出1,標準錯誤2unix

2)改變當前文件的位置:對於每一個打開的文件,內核保持着一個文件weizhik,初始爲0,這個文件位置是從文件開頭其實的字節偏移量,應用程序可以經過執行seek操做,顯式地設置文件的當前位置k.接口

3)讀寫文件:讀操做就是從文件拷貝n>0個字節到存儲器,從當前文件位置k開始,而後將k增長到k+n進程

4)關閉文件:內核釋放文件打開時建立的數據結構,並將這個描述符恢復到可用的描述符池中,不管進城由於何種緣由終止,內核都會關閉全部打開的文件並釋放他們的存儲器資源。資源

相關文章
相關標籤/搜索