檔案描述符和檔案指標的區別

2021-06-09 12:43:25 字數 515 閱讀 2394

檔案描述符就是open檔案時產生的乙個整數,直到乙個索引作用,它用於unix系統中,用於標識檔案。

檔案指標是指向乙個file的結構體,這個結構體裡有乙個元素就是檔案描述符。它用於ansi c標準的io庫呼叫中,用於標識檔案。

既然file中包含檔案描述符元素,可以用fopen()直接獲取指標fp,然後使用fp獲得fp中所包含檔案描述符fd的資訊。

檔案描述符應該是唯一的,但檔案指標(值)卻不是唯一的,但指向的物件卻應該是唯一的。

file *中除了包含了fd資訊,還包含了io緩衝,所以可以理解為file是對fd的牆頭,是c標準形式,所以file *比fd更適合跨平台,應該多用fopen在,少用open。

c語言檔案指標與檔案描述符之間可以相互轉換:

int fileno(file *stream);

file *fdopen(int fd, const char *mode);

將fp轉換成檔案描述符:

int   fd ;

fd  =  fileno(fp);

檔案描述符和檔案指標區別

int fileno file stream 返回stream對應的檔案描述符。file fdopen int filedes,const char mode 從檔案描述符fd 到檔案流 file 的函式 檔案描述符,在linux系統中,裝置也是以檔案的形式存在,要對該裝置進行操作就必須先開啟這個檔...

檔案描述符和檔案指標的區別

檔案描述符 在linux系統中開啟檔案就會獲得檔案描述符,它是個很小的正整數。每個程序在pcb process control block 中儲存著乙份檔案描述符表,檔案描述符就是這個表的索引,每個表項都有乙個指向已開啟檔案的指標。檔案指標 c語言中使用檔案指標做為i o的控制代碼。檔案指標指向程序...

檔案描述符和檔案指標的區別

檔案描述符和檔案指標的區別 2011 07 05 16 05 52 分類 linux 檔案描述符 在linux系統中開啟檔案就會獲得檔案描述符,它是個很小的正整數。每個程序在pcb process control block 中儲存著乙份檔案描述符表,檔案描述符就是這個表的索引,每個表項都有乙個指向...