linux中文件操作函數


系統調用
1. open 函數返回一個整數
例如以只讀(O_DRONLY)打開文件,返回值會是一個大於等於3的整數,打開失敗返回-1
標準輸入文件(STDIN_FILENO) 0
從標準輸入讀 read(STDIN_FILENO, buf, sizeof(buf)); (操作系統調用)
標準輸出(STDOUT_FILENO) 1
標準出錯(STDERR_FILENO) 2
2.errno使用方式
使用strerror(errno) 可以得到錯誤的描述
if( open("a.txt") == -1)
printf("%s\n, strerror(errno));
else close(a.txt);


3.read 函數
read(int fd, void* buf, sizeof(buf));
1.可以讀文件;
2.可以從標準輸入中讀字符串,fd改爲STDIN_FILENO即可
4.write
write(int fd, void* buf, sizeof(buf));
1.可以往文件中寫入,如果buf 並沒有全部用完,則應該使用 strlen(buf)
2.可以往標準輸出裏寫,即顯示器,也就相當於 echo “hello world ”的作用一樣

c庫函數

c庫函數的都是帶f開頭的,並且 都是 帶緩衝區的,會先把緩衝區寫滿,然後一次行寫入,效率高
所以在使用U盤的時候直接拔出有可能會得到損壞的文件的原因就是,操作系統一般是使用c庫函數,可能緩衝區還沒有寫滿,所以有部分文件還未寫入磁盤;

比較:系統調用vsc庫函數
好處: 可以直接對標準輸入輸出進行更加細膩的控制,
壞處:1. 不兼容,不同的版本可能有不同的系統調用
2. 降低磁盤壽命,每一次系統調用,都會啓動一次讀寫操作,哪怕是一個整數,所以
10000次寫入會進行10000次系統調用,效率低,並且磁盤壽命取決於磁盤尋址時間,所
以頻繁的啓動讀寫操作,會減少磁盤壽命


附加:man [num] [需要查看的命令或函數名]
什麼都沒有 是指Linux 命令
2 系統調用
3 c語言庫函數
5 代表第三方函數




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章