Linux中檔案描述符fb和檔案指標FILE*的聯絡與區別
檔案描述符:
linux中,當一個程序開啟一個檔案或者是建立一個新檔案時,核心向程序返回一個檔案描述符來標示該檔案。
檔案描述符是一個非負整數,實際上它是一個索引,指向核心為程序所維護的一個檔案記錄表。
任何程式執行起來都會開啟三個預設的流,標準輸入流,標準輸出流,標準錯誤流通常情況下對應的硬體為鍵盤,顯示器,顯示器。 三個流的檔案標示符為 0,1,2 。因為預設的三個流已經設定好,後面開啟的檔案,檔案描述符從3,4,5開始依次向後。
檔案指標FILE*
檔案指標變數標示符,一般形式為大寫,可以看出是系統定義的一個結構體,該結構體中含有一系列檔名,檔案狀態,當前位置資訊,檔案描述符fd,還有緩衝區等
C語言定義一個FILE*的物件時:
// 表示fp是一個指向FILE結構體的指標
// 通過fp可以讀寫該檔案,或者操作檔案,習慣的稱為fp為檔案指標。
FILE *fp;
檔案標示符fd和檔案指標FILE*的區別
FILE*中的內容包含檔案描述符。 使用fopen、fclose、fread、fwirte對檔案進行操作時,在lib層。 而檔案描述符在系統呼叫層。系統呼叫的介面為write/read、close/open 它們的返回值為fd。
相關推薦
Linux中檔案描述符fb和檔案指標FILE*的聯絡與區別
檔案描述符: linux中,當一個程序開啟一個檔案或者是建立一個新檔案時,核心向程序返回一個檔案描述符來標示該檔案。 檔案描述符是一個非負整數,實際上它是一個索引,指向核心為程序所維護的一個檔案記錄表。 任何程式執行起來都會開啟三個預設的流,標準輸入流,標準輸出流,標準錯誤流通
linux中檔案描述符fd和檔案指標flip的理解
整理自:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html簡單歸納:fd(file descriptor)只是一個整數,在open時產生。起到一個索引的作用。每個程序在PCB(Process Control
檔案描述符fd和檔案指標File* fp的區別和轉換
在linux系統中把裝置和普通檔案也都看做是檔案,要對檔案進行操作就必須先開啟檔案,開啟檔案後會得到一個檔案描述符,它是一個很小的正整數,是一個索引值。 核心會為每一個執行中的程序在程序控制塊pcb中維護一個開啟檔案的記錄表,每一個表項都有一個指標指
檔案描述符fd和檔案指標fp之間的相互轉換
Linux/Unix下使用open函式(系統呼叫)開啟檔案會得到檔案描述符fd(int型變數),而使用C庫中的fopen函式開啟檔案則會得到檔案描述符fp(FILE*型變數),二者之間是可以相互轉換的,下面是兩個example。 1.fd轉換為fp int
linux中檔案描述符fd和struct file結構體的釋放
簡單歸納:fd只是一個整數,在open時產生。起到一個索引的作用,程序通過PCB中的檔案描述符表找到該fd所指向的檔案指標filp。 檔案描述符的操作(如: open)返回的是一個檔案描述符,核心會在每個程序空間中維護一個檔案描述符表, 所有開啟的檔案都將通過此表中的檔
淺談檔案描述符1和2
轉自:http://www.361way.com/filedesc-1-2/5536.html 在linux系統中, 我們知道有 標準輸入 , 標準輸出 , 和標準錯誤, 並且都分別對應著0, 1, 2這三個檔案描述符, 在每個程序誕生之際,就已經隨著伴隨左右,通過以下命令就能看出來:
Unix環境程式設計之二:檔案描述符、開啟檔案表、v節點關係詳解
一、檔案描述符概念 Linux 系統中,把一切都看做是檔案,當程序開啟現有檔案或建立新檔案時,核心向程序返回一個檔案描述符,檔案描述符就是核心為了高效管理已被開啟的檔案所建立的索引,用來指向被開啟的檔案,所有執行I/O操作的系統呼叫都會通過檔案描述符。 二、檔案
R-squared 和 Adjusted R-squared聯絡與區別
原文見:下面是自己理解的總結:大概意思就是說,R-squared(值範圍0-1)描述的 輸入變數對輸出變數的解釋程度。在單變數線性迴歸中R-squared 越大,說明擬合程度越好。然而只要曾加了更多的變數,無論增加的變數是否和輸出變數存在關係,則R-squared 要麼保持不
Linux:基礎IO(cIO庫函式詳細介紹)(IO系統呼叫介面詳細介紹)(兩者關係:檔案描述符和檔案指標)
目錄 c系統中的庫函式: fopen:開啟檔案 fclose:關閉檔案 fwrite:向檔案寫入一個數據塊 fread:讀寫 fprintf:格式化輸出到一個流/檔案中 fseek:移動/跳轉 到當前 讀取/寫入位置 fgets:獲取字串 fput:把字串寫入到指
深入理解Linux/Unix檔案描述符和epoll
Linux/Unix 檔案描述符(File Describer)的本質 Linux/Unix(以下簡稱Linux)系統中,每個程序都有一個專用的陣列,陣列的元素是一個結構體,稱為檔案描述符File Descriptor(以下簡稱fd),但是至少包含一個檔案指標,指向Linux核心的O
理解Unix/Linux系統中的檔案描述符
簡介 檔案描述符是針對Unix/Linux的每個程序而言的,每個程序都維護了一個檔案指標表,指標指向作業系統的檔案。這裡的檔案是指的Unix/Linux系統所說的檔案,Unix/Linux下一切皆檔案。檔案描述符相當於一個檔案指標表的下標,程序通過下標指標進行間接定址,從而在作業系統
每天進步一點點——Linux中的檔案描述符與開啟檔案之間的關係
在Linux系統中一切皆可以看成是檔案,檔案又可分為:普通檔案、目錄檔案、連結檔案和裝置檔案。檔案描述符(file descriptor)是核心為了高效管理已被開啟的檔案所建立的索引,其是一個非負整數(通常是小整數),用於指代被開啟的檔案,所有執行I/O操作的系統呼叫都通過檔案描述符。程式剛剛啟動的
Linux中的檔案描述符(fd)與開啟檔案之間的關係
1. 概述 在Linux系統中一切皆可以看成是檔案,檔案又可分為:普通檔案、目錄檔案、連結檔案和裝置檔案。檔案描述符(file descriptor)是核心為了高效管理已被開啟的檔案所建立的索引,其是一個非負整數(通常是小整數),用於指代被開啟的檔案,所有執行I/O操作的系統呼叫都通過檔案描
小何講Linux: Linux中檔案及檔案描述符概述
在Linux中,一切皆檔案!所有對裝置和檔案的操作都是使用檔案描述符來進行的。檔案描述符是一個非負的整數,它是一個索引值,並指向在核心中每個程序所開啟的檔案的記錄表;當開啟一個現存檔案或建立一個新檔案
Linux 下檔案描述符和開啟檔案之間的關係
2014-07-06 wcdj 檔案描述符和開啟的檔案之間似乎是一一對應的關係,但實際可以多個檔案描述符指向同一開啟檔案,這些檔案描述符可能在相同或不同的程序中開啟。核心維護的三個資料結構: (1) 程序級的檔案描述符表 (2) 系統級的開啟檔案表 (3) 檔案系統的i-
Linux(三)檔案描述符和FILE結構體
檔案描述符 在我們介紹檔案描述符之前。我們先來看一下 系統呼叫介面:write,read,close,open,lseek,下面我們來嘗試用下open系統呼叫介面。 我們可以看到,我們通過open建立一個檔案給它許可權0644 接下來我們寫一個whi
linux檔案描述符,系統開啟檔案和i節點的關係
首先區分檔案描述符和開啟的檔案 核心維護了三個資料結構 程序級的檔案描述符表(即每個程序一個) 系統級的開啟檔案表(即該表在整個核心中只有一個) 檔案系統的 i-node 表 針對每個程序,核心為其維護一個開啟的檔案描述
Linux下的檔案流和檔案描述符
檔案流 Linux下的庫函式通過流物件來使用檔案。 //fp對應的是filename的流物件,程序通過fp來操作檔案 FILE *fp; fp=fopen(filename,
Linux中檢視與設定檔案描述符的方法(圖文)
<iframe id="iframeu2106054_0" src="http://pos.baidu.com/wcvm?rdid=2106054&dc=2&di=u2106054&dri=0&dis=0&dai=1&am
linux—dup和dup2重定向檔案描述符
【dup】 利用函式dup,我們可以複製一個描述符。傳給該函式一個既有的描述符,它就會返回一 個新的現有的最小的未被使用的描述符,這個新的描述符是傳給它的描述符的拷貝。這意味著,這兩個描述符共享同一