C語言檔案與目錄(四)緩衝區
1)檔案緩衝區
將緩衝區資料寫入到磁碟函式sync:所謂緩衝區,是Linux系統對檔案的一種處理方式。在對檔案進行寫操作時,並沒有立即把檔案寫入到磁碟,而是把檔案寫入到緩衝區中。如果需要把檔案立即寫入到磁碟,可以用sync函式。用這個函式強制寫入緩衝區資料的好處是保證資料有同步。這個函式的使用方法如下所示。
int sync(void)這個函式會對當前程式開啟的所有檔案進行處理,將緩衝區中的內容寫入到檔案。函式沒有引數,返回值為0。這個函式一般不會產生錯誤。要使用這個函式,需要在程式中包含下面的標頭檔案。
#include<unistd.h>
提示:Linux系統下還有一個sync指令能達到同樣的效果,可以在命令列中呼叫,用於將緩衝區中的資料立即寫入的磁碟中。
2)單個檔案緩衝區
將緩衝區資料寫入到磁碟函式fsync:函式fsync的作用是將緩衝區的資料寫入到磁碟。這個函式的使用方法如下所示。
int fsync(int fd);
引數fd是open函式開啟檔案時返回的編號。函式如果執行成功,則返回0,否則返回-1。
提示:與sync函式不同的是,函式fsync可以指定開啟檔案的編號,執行以後會返回一個值。
在使用這個函式時,需要在檔案前面包含下面的標頭檔案。
#include<unistd.h>
函式可能發生下面這些錯誤,可以用errno捕獲錯誤。
EBADF:引數fd不是一個正確的檔案開啟編號或者檔案不能寫入。
EIO:發生了I/O錯誤。前面的章節已經講述過I/O錯誤。
EROFS或EINVAL:fd是一個特殊的檔案,不能夠寫入內容。
相關文章
- C語言檔案與目錄(一)C語言
- C語言檔案與目錄(二)C語言
- C語言檔案與目錄(三)C語言
- C語言檔案與目錄(五)檔案鎖C語言
- C語言緩衝區問題C語言
- C語言setvbuf()函式:設定檔案流的緩衝區C語言函式
- C語言清空輸入緩衝區C語言
- 無緩衝檔案IO和目錄操作
- C語言setbuf()函式:把緩衝區與流相關聯C語言函式
- C語言remove()函式:刪除檔案或目錄C語言REM函式
- C語言清空輸入緩衝區的N種方法對比C語言
- C語言rename()函式:重新命名檔案或目錄C語言函式
- C 標準庫IO緩衝區和核心緩衝區的區別
- Linux中檔案與目錄的區別Linux
- 18、檔案與目錄
- C語言檔案操作C語言
- C語言(檔案操作)C語言
- 緩衝區分析
- 程式分析與優化 - 9 附錄 XLA的緩衝區指派優化
- Linux 檔案與目錄Linux
- 如何設定檔案的緩衝
- C語言與嵌入式C語言的區別C語言
- C語言知識彙總 | 00-C語言知識彙總目錄C語言
- C語言(檔案加解密)C語言解密
- C語言-檔案讀寫C語言
- Go 語言目錄結構與實踐Go
- Java NIO:緩衝區Java
- getchar緩衝區
- Linux 檔案與目錄管理Linux
- C 呼叫redis緩衝Redis
- 刪除目錄及目錄下所有檔案與子目錄 (轉)
- Java與C語言的區別?JavaC語言
- gets()getchar()與緩衝區的問題
- C#快速入門教程(24)—— 路徑、目錄與檔案C#
- 用c語言處理檔案C語言
- C語言 檔案IO的使用C語言
- c語言多檔案編譯C語言編譯
- c語言檔案操作相關C語言