@(os)
開啟檔案是乙個合作的過程。具體的過程有open–read.
其中特別注意,這兩個操作都是系統呼叫!使用者程序只是把開啟檔案這個需求發到作業系統,作業系統就根據要求完成這個任務,且這個任務分成兩個部分執行。
首先,維護乙個開啟檔案表。使用者程序傳送的請求裡,給的是檔名,經過open系統呼叫,就去把該檔案的fcb調入記憶體,並返回乙個指標供read呼叫。
即:首次開啟檔案時,先open,之後的read等都用open返回的指標索引到檔案。
(2014.29)在乙個檔案被使用者程序首次開啟的過程中,作業系統需要做的是:b.
a. 將檔案內容讀到記憶體中
b.將檔案控制塊讀到記憶體中
c. 修改檔案控制塊的讀寫許可權
d. 將檔案的資料緩衝區首指標返回給使用者程序
分析:主要考查的是open系統呼叫主要做了什麼。open最終返回的是檔案描述符fd。為後面的讀寫做準備。至於檔案緩衝區的首指標,這是在read和write需要傳入的,open只做到減少查詢,避免按名查詢,通過維護的開啟檔案表,快速索引到檔案。fcb主要是檔案的描述資訊,也是open工作的核心:把fcb或者linux下的inode調入記憶體。
檔案的開啟過程分析
系統呼叫 sys open do sys open do filp open open namei path lookup open path lookup intent open 檔案存在直接開啟 path lookup create path lookup intent open 檔案不存在,建...
fopen開啟檔案失敗過程分析
場景說明 協助同事解決fopen開啟檔案永遠返回 1的異常情況。在解決問題的時候,先入為主的認為是 檔案路徑出現了字元轉義的問題,根本沒有想到要列印出當前無法獲取到檔案控制代碼的錯誤,是否是檔案路徑不存在。所以一開始就是將 替換為 然後替換為 還是不行。fprintf stderr,s n stre...
首次分析 PHP寫框架
author hlz time 2016年8月3日 15 00 35 description 框架 分析 初始目錄 分三個部分 index.php 入口檔案設定,且統一命名空間 a.設定常量 define hlz path realpath dir 獲取入口目錄位置 define mysql帳號密碼...