Linux 檔案描述符

2021-09-08 17:54:55 字數 1436 閱讀 6091

檔案描述符是用來訪問檔案的乙個小整數,是作業系統訪問特定檔案的標誌。

#include #include #include #include #include int main()

return 0;

}

linux程序預設情況下會有3個預設開啟的檔案描述符,分別是標準輸入(stdin)0,標準輸出(stdout)1,標準錯誤(error)2;0,1,2對應的物理裝置一般是:鍵盤,顯示器,顯示器。所以輸入輸出還可以採用如下方式:

每當開啟乙個新的檔案,在task_struct中從上向下找到乙個最小的,未被使用的檔案或陣列元素,然後把新的檔案位址填充到這個元素當中,最終返回對應陣列的下標。當以後想訪問這個檔案時,只用把陣列的下標給程序就行,我們根據下標找到該檔案的pcb,file_struct及file*陣列,再根據下標確認訪問的是哪個檔案。

本質上,檔案描述符就是file_struct中陣列的下標,只要拿著檔案描述符,就可以找到對應的檔案。

用一段**來說明:

#include #include #include #include int main()

printf("fd:%d\n",fd);

close(fd);

return 0;

}

輸出結果為:

這裡之所以是3,是因為linux程序預設情況下會有3個預設開啟的檔案描述符,分別是標準輸入(stdin)0,標準輸出(stdout)1,標準錯誤(error)2

我們再關閉0:

#include #include #include #include int main()

printf("fd:%d\n",fd);

close(fd);

return 0;

}

輸出結果為:

再關閉2:

#include #include #include #include int main()

printf("fd:%d\n",fd);

close(fd);

return 0;

}

輸出結果為:

通過上面的實踐,我們不難發現,檔案描述符的分配規則是:從最小的,未被使用的小整數開始分配。

linux檔案描述符

本文介紹了檔案描述符,1 首先說什麼是檔案描述符,它有什麼作用?檔案描述符是乙個簡單的整數,用以標明每乙個被程序所開啟的檔案和socket。基於檔案描述符的輸入輸出函式 open 開啟乙個檔案,並指定訪問該檔案的方式,呼叫成功後返回乙個檔案描述符。creat 開啟乙個檔案,如果該檔案不存在,則建立它...

linux檔案描述符

當某個程式開啟檔案時,作業系統返回相應的檔案描述符,程式為了處理該檔案必須引用此描述符。所謂的檔案描述符是乙個低階的正整數。最前面的三個檔案描述符 0,1,2 分別與標準輸入 stdin 標準輸出 stdout 和標準錯誤 stderr 對應。因此,函式 scanf 使用 stdin,而函式 pri...

Linux 檔案描述符

我們之前就知道在linux作業系統下 一切皆檔案 所以在這個條件下,所有研究的物件都變相的相當於研究檔案,那麼對檔案系統的研究也應該是必須的。我們的核心利用檔案描述符來訪問檔案,每個檔案描述符都是非負整數,開啟現存的檔案或者是新建檔案時,核心會返回乙個檔案描述符,讀寫檔案也需要使用檔案描述符來指定待...