Linux檔案IO介面之read函式使用

2021-09-25 02:16:58 字數 1204 閱讀 6396

往乙個檔案寫入資料,並讀取資料

#include #include //呼叫open()函式所需的標頭檔案

#include #include #include //write , read

int main()

; char str[20]=;

//open file

fd = open("/home/chenhai/test/a.txt",o_rdwr);

if(fd == -1)

else

//write file

int ret = write(fd,buf,10);

if(ret == -1)

else

#if 1

close(fd);

fd = open("/home/chenhai/test/a.txt",o_rdwr);

if(fd == -1)

else

#endif

int val = read(fd,str,20);

if(val == -1)

else

return 0;

}

通過man手冊檢視read的使用方法

讀 從 檔案描述符

synopsis

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

引數一:需要讀取的檔案描述符

引數二:讀取後的資料快取位址

引數三:需要讀取的資料大小

返回值: 成功 返回讀取到位元組數

0 已經讀到檔案的末尾了

-1 讀取錯誤

注意: 讀函式,他只會根據文字中的內容去讀取。 假設文字中只有10 個位元組的資料,

使用者要求讀取100個位元組的資料,那麼最終只會讀到 10個!!! (因為它都沒得給你讀取啊。。。。。)

所以利用讀取函式的時候,都是「越界"讀取,要求讀取的資料大小,要比檔案中資料的真實大小要大!!!!

系統檔案I O介面

檔案io是指對檔案進行資料輸入與資料輸出,我們程式的本質就是對輸入的資料進行處理然後輸出,可是資料是在檔案中的,在linux下一切皆檔案,所以程式就是要實現對檔案的讀寫操作 可是我們程式不能直接去操作檔案,這個時候就需要系統提供呼叫介面來供我們使用從而根據系統介面處理讀寫資料。我們在c語言中學習的幾...

檔案IO介面函式

include include include intopen const char pathname,int flags int open const char pathname,int flags,mode t mode 功能 建立或者開啟檔案,得到檔案描述符 引數 pathname 檔名 fl...

linux學習筆記之檔案IO

讀函式 recv fd open recv file name,o rdwr o creat o trunc,0764 if recv fd 0 open函式的flag 讀寫許可權 o rdonly o wronly o nonblock 1 阻塞與非阻塞。如果乙個函式是阻塞式的,則我們呼叫這個函式...