read/write
Header Files
#include <unistd.h>
Function Prototype
ssize_t read(int filedes, void *buf, size_t nbytes);
ssize_t write(int filedes, const void *buf, size_t nbytes);- 其中
buf代表我讀到的資訊要存到 user space 的哪裡,可以是我們在.c定義的變數
Explanation
read
- 回傳值
>0: 成功讀取的位元數EOF(0): 已經讀到 End-of-File-1: error
- 每次讀取完後 offset 都會增加
write
- 如果
open時有設O_APPEND,每次write之前都會先將 offset 設為檔案大小(從 i node table 取得)
Delay Write
當我們write時,如果沒有特別設 Synchronization ,那麼寫的資料會先停放在 buffer,而每 30 秒會有特別的 process 將 buffer 的內容同步到 Hard Disk