Linux檔案程式設計之 系統呼叫 read

2021-08-26 10:20:11 字數 949 閱讀 4912

(1)相關函式說明

函式原型

int read(int fd,void * buf ,size_t count);

相關函式

readdir,write,fcntl,close,lseek,readlink,fread

表頭檔案

#include

函式說明

【從檔案描述符fd所指定的檔案中,讀取count個位元組,到buf所指向的緩衝區中,返回值為實際讀取的位元組數】

read()會把引數fd 所指的檔案傳送count個位元組到buf指標所指的記憶體中。若引數count為0,則read()不會有作用並返回0。返回值為實際讀取到的位元組數,如果返回0,表示已到達檔案尾或是無可讀取的資料,此外檔案讀寫位置會隨讀取到的位元組移動。

附加說明

如果順利read()會返回實際讀到的位元組數,最好能將返回值與引數count 作比較,若返回的位元組數比要求讀取的位元組數少,則有可能讀到了檔案尾、從管道(pipe)或終端機讀取,或者是read()被訊號中斷了讀取動作。當有錯誤發生時則返回-1,錯誤**存入errno中,而檔案讀寫位置則無法預期。

錯誤**

eintr 此呼叫被訊號所中斷。

eagain 當使用不可阻斷i/o 時(o_nonblock),若無資料可讀取則返回此值。

ebadf 引數fd 非有效的檔案描述詞,或該檔案已關閉。

範例

參考open()。

(2)例項原始碼

參考最終「綜合例項」(檔案拷貝)。

(3)除錯結果

參考最終「綜合例項」(檔案拷貝)。

Linux檔案程式設計之 系統呼叫 open

1 相關函式說明 函式原型 int open const char pathname,int flags int open constchar pathname,int flags,mode t mode 如果使用了o creat標誌,則要使用這個函式,這時需要指定mode來表示檔案的訪問許可權 相...

Linux檔案程式設計之 系統呼叫 close

1 相關函式說明 相關函式 open,fcntl,shutdown,unlink,fclose 表頭檔案 include 定義函式 int close intfd 引數說明 引數fd為先前由open 或creat 所返回的檔案描述詞。當使用完檔案後若已不再需要則可使用close 關閉該檔案,而clo...

Linux檔案程式設計之 系統呼叫 write

1 相關函式說明 函式原型 int write int fd,const void buf,size t count 相關函式 open,read,fcntl,close,lseek,sync,fsync,fwrite 表頭檔案 include 函式說明 從buf所指向的緩衝區中,取出count個位...