檔案描述符fd和FILE的關係

2021-07-31 18:12:16 字數 499 閱讀 8368

1.file的內容

file在c中作為乙個結構體存在結構如下:

struct _iobuf ;
其中file的緩衝區指標用來緩衝資料,_flag用來確定開啟檔案的許可權,_file為檔案描述符,0為stdin,1為stdout,2為stderror,接下來為使用者檔案。

2.檔案描述符fd

首先明白fd與file的區別,file使用fopen,fclose,fread,fwrite操作檔案,返回型別為檔案指標(file*)。檔案描述符用open()/creat()建立,成功返回型別檔案描述符,失敗返回-1。用read(),write()讀寫。下圖為檔案描述符的**。

如果我們在讀取檔案前,close掉0,1,2三的話,即將讀取的檔案將放在缺少處。

檔案描述符 fd

1 首先說什麼是檔案描述符,它有什麼作用?檔案描述符是乙個簡單的整數,用以標明每乙個被程序所開啟的檔案和socket。第乙個開啟的檔案是0,第二個是1,依此類推。unix 作業系統通常給每個程序能開啟的檔案數量強加乙個限制。更甚的是,unix 通常有乙個系統級的限制。因為squid 的工作方式,檔案...

Linux 檔案描述符fd與FILE結構體

在linux中不是用檔案指標來識別乙個檔案,而是用檔案描述符來識別的。檔案描述符簡稱fd,它是linux核心所建立的索引,目的就是為了高效管理已經被開啟的檔案。它是乙個非負整數,用來表示被開啟的檔案,而對該檔案所有的i o操作都是通過該檔案的檔案描述符來執行的。在乙個程式剛剛啟動時,系統就已經佔了三...

檔案描述符FD的含義 檔案控制代碼

使用sudo lsof np itcp stcp listen檢視占用埠的程式 因為 lsof 需要訪問核心記憶體和各種檔案,所以必須以 root 使用者的身份執行它才能夠充分地發揮其功能 檔案控制代碼是windows系統的概念,在linux下稱之為檔案描述符fd file description ...