對於核心而言,所有開啟的檔案都由檔案描述符引用。檔案描述符是檔案的乙個索引,在形式上表現為非負整數。當我們open或creat乙個檔案時,核心會向程序返回乙個值,這個值就是檔案描述符,它作為檔案的標識,可以將它作為引數傳遞給write或者read等函式,將而對檔案進行操作。
(1)檔案描述符的作用域僅在當前程序
(2)open 函式開啟檔案,成功會返回乙個檔案描述符(非負整數),開啟失敗,返回-1;
按照慣例,uinx shell使用檔案描述符0與程序標準輸入相結合,使用檔案描述符1與程序標準輸出相結合,使用檔案描述符2與程序標準錯誤輸出相結合。定義了 stdin_fileno、stdout_fileno 和 stderr_fileno 來代替 0、1、2。
下面對系統定義的檔案描述符0和檔案描述符1進行程式設計實現
#include
#include
#include
#include
#include
intmain()
程式執行的結果:
hello@embed_learn:
~$ gcc hello.c
hello@embed_learn:
~$ .
/a.out
hello //使用者從鍵盤輸入的
hello //標準輸出
mysql 檔案描述符 檔案描述符
toc 首先,linux的世界裡一切皆為檔案,無論是裝置還是乙個socket連線。檔案又可分為 普通檔案 目錄檔案 鏈結檔案和裝置檔案。檔案描述符 file descriptor 是核心為了高效管理已被開啟的檔案所建立的索引,其是乙個非負整數 通常是小整數 用於指代被開啟的檔案,所有執行i o操作的...
檔案描述符
檔案描述符 是個很小的正整數,它是乙個索引值,指向核心為每乙個程序所維護的該程序開啟檔案的記錄表。檔案描述符的優點 相容posix標準,許多 linux 和unix 系統呼叫都依賴於它。檔案描述符的缺點 不能移植到unix以外的系統上去,也不直觀。基於檔案描述符的輸入輸出函式 open 開啟乙個檔案...
檔案描述符
作業系統程序表中存放各個檔案進行檔案描述 核心 kernel 利用檔案描述符 file descriptor 來訪問檔案。檔案描述符是非負整數。開啟現存盤案或新建檔案時,核心會返回乙個檔案描述符。讀寫檔案也需要使用檔案描述符來指定待讀寫的檔案。目錄檔案描述符概述 如何建立檔案描述符 使用的好處 缺點...