C語言中對文件最基本的讀取和寫入函數(shù)

C語言read()函數(shù):讀文件函數(shù)(由已打開的文件讀取數(shù)據(jù))

頭文件:

#include <unistd.h>

定義函數(shù):

ssize_t read(intfd,void* buf,size_tcount);

函數(shù)說明:read()會把參數(shù)fd 所指的文件傳送count 個字節(jié)到buf 指針所指的內(nèi)存中. 若參數(shù)count 為0,

則read()不會有作用并返回0. 返回值為實際讀取到的字節(jié)數(shù), 如果返回0,

表示已到達文件尾或是無可讀取的數(shù)據(jù),此外文件讀寫位置會隨讀取到的字節(jié)移動.

附加說明:

如果順利 read()會返回實際讀到的字節(jié)數(shù), 最好能將返回值與參數(shù)count 作比較, 若返回的字節(jié)數(shù)比要求讀取的字節(jié)數(shù)少, 則有可能讀到了文件尾、從管道(pipe)或終端機讀? ?蛘呤莚ead()被信號中斷了讀取動作.

當有錯誤發(fā)生時則返回-1, 錯誤代碼存入errno 中, 而文件讀寫位置則無法預期.

錯誤代碼:

EINTR 此調(diào)用被信號所中斷.

EAGAIN 當使用不可阻斷I/O 時(O_NONBLOCK), 若無數(shù)據(jù)可讀取則返回此值.

EBADF 參數(shù)fd 非有效的文件描述詞, 或該文件已關閉.

C語言write()函數(shù):寫文件函數(shù)

頭文件:

#include <unistd.h>

定義函數(shù):

ssize_t write (intfd,constvoid* buf,size_tcount);

函數(shù)說明:write()會把參數(shù)buf 所指的內(nèi)存寫入count 個字節(jié)到參數(shù)fd 所指的文件內(nèi). 當然, 文件讀寫位置也會隨之移動.

返回值:如果順利write()會返回實際寫入的字節(jié)數(shù). 當有錯誤發(fā)生時則返回-1, 錯誤代碼存入errno 中.

錯誤代碼:

EINTR 此調(diào)用被信號所中斷.

EAGAIN 當使用不可阻斷I/O 時 (O_NONBLOCK), 若無數(shù)據(jù)可讀取則返回此值.

EADF 參數(shù)fd 非有效的文件描述詞, 或該文件已關閉.

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容