由於程序級檔案描述符表的存在,不同的程序中會出現相同的檔案描述符,它們可能指向同乙個檔案,也可能指向不同的檔案。
兩個不同的檔案描述符,若指向同乙個開啟檔案控制代碼(file*),將共享同一檔案偏移量。因此,如果通過其中乙個檔案描述符來修改檔案偏移量,那麼從另乙個檔案描述符中也會觀察到變化,無論這兩個檔案描述符是否屬於不同程序,還是同乙個程序,情況都是如此。
在linux系統中檔案控制代碼(file handles)和檔案描述符(file descriptor)是乙個一一對應的關係
#include
#include
#include
#include
#include
#include
intmain()
; file *myfile;
myfile =
fopen
("test"
,"w+");
if(!myfile)
printf
("the openfile's descriptor is %d\n"
, myfile->_fileno);if
(write
(myfile->_fileno,buf,50)
<0)
else
exit(0
);}
檔案控制代碼 檔案描述符
檔案控制代碼和檔案描述符 在我們跨平台開發的時候,經常會碰到這倆個概念 檔案描述符 本質上是乙個索引號 非負整數 系統使用者層可以根據它找到系統核心層的檔案資料。這是乙個posix標準下的概念,常見於linux系統。但windows也有檔案描述符這個概念,但不常用。檔案控制代碼 windows下的概...
Linux 檔案控制代碼 檔案描述符
這裡我們先區分好兩個概念 檔案描述符和檔案控制代碼 簡單來說,每個程序都有乙個開啟的檔案表 fdtable 表中的每一項是struct file型別,包含了開啟檔案的一些屬性比如偏移量,讀寫訪問模式等,這是真正意義上的檔案控制代碼。檔案描述符是乙個整數。代表fdtable中的索引位置 下標 指向具體...
控制代碼和檔案描述符
控制代碼是windows下的概念。控制代碼是windows下各種物件的識別符號,比如檔案 也許叫文件比較合適一點 資源 選單 游標 點陣圖等。檔案控制代碼和檔案描述符類似,它也是乙個非負整數,也用於定位檔案資料在記憶體中的位置。由於linux下所有東西都被看成是檔案,比如檔案 也許叫文件比較合適一點...