C語言中對文件最基本的讀取和寫入函數(shù)
C語言read()函數(shù):讀文件函數(shù)(由已打開的文件讀取數(shù)據)
頭文件:
#include <unistd.h>
定義函數(shù):
ssize_t read(int fd, void * buf, size_t count);
函數(shù)說明:read()會把參數(shù)fd 所指的文件傳送count 個字節(jié)到buf 指針所指的內存中. 若參數(shù)count 為0, 則read()不會有作用并返回0. 返回值為實際讀取到的字節(jié)數(shù), 如果返回0, 表示已到達文件尾或是無可讀取的數(shù)據,此外文件讀寫位置會隨讀取到的字節(jié)移動.
附加說明:
如果順利 read()會返回實際讀到的字節(jié)數(shù), 最好能將返回值與參數(shù)count 作比較, 若返回的字節(jié)數(shù)比要求讀取的字節(jié)數(shù)少, 則有可能讀到了文件尾、從管道(pipe)或終端機讀? ?蛘呤莚ead()被信號中斷了讀取動作.
當有錯誤發(fā)生時則返回-1, 錯誤代碼存入errno 中, 而文件讀寫位置則無法預期.
錯誤代碼:
- EINTR 此調用被信號所中斷.
- EAGAIN 當使用不可阻斷I/O 時(O_NONBLOCK), 若無數(shù)據可讀取則返回此值.
- EBADF 參數(shù)fd 非有效的文件描述詞, 或該文件已關閉.
C語言write()函數(shù):寫文件函數(shù)
頭文件:
#include <unistd.h>
定義函數(shù):
ssize_t write (int fd, const void * buf, size_t count);
函數(shù)說明:write()會把參數(shù)buf 所指的內存寫入count 個字節(jié)到參數(shù)fd 所指的文件內. 當然, 文件讀寫位置也會隨之移動.
返回值:如果順利write()會返回實際寫入的字節(jié)數(shù). 當有錯誤發(fā)生時則返回-1, 錯誤代碼存入errno 中.
錯誤代碼:
- EINTR 此調用被信號所中斷.
- EAGAIN 當使用不可阻斷I/O 時 (O_NONBLOCK), 若無數(shù)據可讀取則返回此值.
- EADF 參數(shù)fd 非有效的文件描述詞, 或該文件已關閉.
相關文章
基于C語言char與unsigned char的區(qū)別介紹
本篇文章小編為大家介紹,基于C語言char與unsigned char的區(qū)別介紹。需要的朋友參考下2013-04-04Visual Studio 2019配置qt開發(fā)環(huán)境的搭建過程
這篇文章主要介紹了Visual Studio 2019配置qt開發(fā)環(huán)境的搭建過程,本文圖文并茂給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03opencv2基于SURF特征提取實現(xiàn)兩張圖像拼接融合
這篇文章主要為大家詳細介紹了opencv2基于SURF特征提取實現(xiàn)兩張圖像拼接融合,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03