creat() 函數
close() 函數
read() 函數
- read 函數實際讀到的字節數少於要求讀的字節數時:
- 讀普通文件,在讀到要求字節數之前就到達文件尾;
- 當從終端設備讀,通常一次最多讀一行;
- 當從網絡讀時,網絡中的緩沖機構可能造成返回值小於所要求讀的字節數;
- 某些面向記錄的設備,如磁帶,一次最多返回一個記錄;
- 讀操作完成后,文件的當前位置將從讀之前的位置加上實際讀的字節數;
- 當有錯誤發生時則返回 -1,錯誤代碼存入 errno 中,而文件讀寫位置則無法預期;
write() 函數
- 數據無法一次性讀完時
第二次讀 buf 中數據時,讀位置指針並不會自動移動
按如下格式實現讀位置移動: write(fp, p1+len, (strlen(p1) len)len),直至指針恢復
- Write 一次可以寫的最大數據范圍是 8192
寫入數據大小最好小於 buff 中的值
Count 參數值大於 SSIZE_MAX ,則 write 調用的結果未定義
Count 參數值為 0 時, write 調用會立即返回 0 這個值
- Write 調用返回時,內核已經將緩沖區所提供的數據復制到內核的緩沖區,
但是無法保證數據已經寫出到預定的目的地
// Read 和 write 函數示例 #include <stdio.h > #include <stdlib.h #include <unistd.h int main(void) { char buf [100]; int num = 0; if ((num = read(STDIN_FILENO, buf , 10)) == -1) { printf("read error"); error(-1); } else { // 將鍵盤輸入又輸出到屏幕上 write(STDOUT_FILENO,buf , num ); } return 0; }