Linux 檔案描述符和FILE結構體

2021-09-24 14:43:56 字數 563 閱讀 7712

檔案描述符是乙個整數,用來標記每乙個的開啟的檔案和socket。

第乙個開啟的檔案的檔案描述符是0,第二個是1...以此論推

在unix/linux系統下,0號檔案對應的是標準輸入(stdin),1號檔案對應的是標準輸出(stdout),2號檔案對應的是標準錯誤(stderr)

每個程序都在其pcb中儲存著乙份檔案描述符表,而檔案描述符作為這個表的索引可以讓我們快速的查到每個表項對應的開啟檔案的指標

優點:檔案描述符是許多linux/unix系統進行系統呼叫的介面

缺點:不可移植性,不能移植到unix系統之外的其他系統

1、已經被開啟的檔案,在核心中用file結構體表示,檔案描述符表中的表項指向file結構體

2、儲存被開啟檔案所在的緩衝區基址,緩衝區的當前指標,緩衝區的大小,檔案的讀寫模式以及緩衝區剩餘位元組的個數等

檔案描述符fd和FILE的關係

1.file的內容 file在c中作為乙個結構體存在結構如下 struct iobuf 其中file的緩衝區指標用來緩衝資料,flag用來確定開啟檔案的許可權,file為檔案描述符,0為stdin,1為stdout,2為stderror,接下來為使用者檔案。2.檔案描述符fd 首先明白fd與file...

FILE結構體與檔案描述符

首先解釋下為什麼要對這個結構體進行分析,我麼在進行c的學習時曾學習過這個file可以使用file 型別生成乙個指向檔案的指標,並且用於進行一系列檔案操作的傳值與接收。但對於file這個型別並沒有進行深究,那麼首先我們從題目可以知道這個我們熟悉的file型別其實是乙個結構體。既然是結構體,那麼就會有各...

linux檔案描述符

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