Linux學習筆記 檔案讀寫小細節
open 函式的flag
int open(const *pathname, int falg, int parm)
O_RDONLY //檔案只讀
O_WRONLY //檔案只寫
O_CREAT //不存在時建立檔案(存在就直接清空後覆寫)
O_RDWR //檔案讀寫
O_EXCL //與O_CREAT共同作用,在試圖覆寫時報錯
O_TRUNC //從檔案頭開始覆寫
O_APPEND //在檔案尾追加寫入
- open的第三個引數,只在O_CREAT存在下有用,用於控制其建立的許可權(如 0777, 0666)
- open的O_EXCL引數,與O_CREAT共同作用,再其檔案存在時直接報錯,防止檔案被清空
- 上述錯誤可以結合errno.h的庫 通過perror()列印錯誤
lseek()函式
off_t lseek(int fd, off_t offset, int whence)
- whence為當前檔案指標的基點
- SEEK_SET
- SEEK_CUR
- SEEK_END
- 返回值是實際指標偏移的值
- len = lseek(fd, 0, SEEK_END)
可以返回檔案的長度
lseek也可以製作空洞檔案
即中間通過指標的移動,跳過一段,即製造了檔案空洞
(用於多執行緒的檔案寫,想想迅雷,差不多的)
當檔案被同一程式開啟兩次的時候
得到兩個fd的值,就會有兩個檔案的指標,
當對檔案進行讀寫時,兩個指標從頭開始寫,兩個寫入的內容會相互覆蓋,同樣的,讀取的檔案會重複,
這時,給出其open()同時加入O_APPEND引數,這樣就可以同步讀寫了
fd1 = open(FILEPATH, O_RDWR | O_APPEND)
fd2 = open(FILEPATH, O_RDWR | O_APPEND)
相關文章
- C++學習筆記----讀寫檔案C++筆記
- LevelDB學習筆記 (2): 整體概覽與讀寫實現細節筆記
- Python 3 學習筆記之——鍵盤輸入和讀寫檔案Python筆記
- 學習筆記(30):Python資料清洗實戰-Excel檔案讀寫筆記PythonExcel
- JVM學習筆記——Class類檔案解讀JVM筆記
- python學習之讀寫檔案Python
- Linux 學習筆記--檔案打包與解壓縮Linux筆記
- 4、Linux入門學習筆記 檔案操作命令Linux筆記
- Python零基礎學習筆記(三十)——讀檔案Python筆記
- Integer類小細節隨筆記錄筆記
- Linux學習筆記:rm刪除檔案和資料夾Linux筆記
- Linux 學習筆記--環境變數與檔案查詢Linux筆記變數
- Linux 學習筆記--目錄結構及檔案基本操作Linux筆記
- DVWA-檔案包含學習筆記筆記
- 學習筆記:robots.txt檔案筆記
- Python之檔案讀寫小練Python
- linux讀寫檔案 簡單版Linux
- Linux 學習筆記--使用者及檔案許可權管理Linux筆記
- Linux 學習筆記Linux筆記
- Linux小白菜嘗試寫學習筆記日記Linux筆記
- 忽略某些檔案 —— Git 學習筆記 05Git筆記
- Python學習筆記|Python之檔案操作Python筆記
- Python學習筆記|Python之特殊檔案Python筆記
- Attention機制全流程詳解與細節學習筆記筆記
- 物聯網學習教程—檔案的讀寫二
- 物聯網學習教程—檔案的讀寫一
- Sharding-Jdbc學習筆記二之讀寫分離專案配置篇JDBC筆記
- VC++學習筆記---配置檔案(一) ini檔案和propritiesC++筆記
- Linux 學習筆記--程式Linux筆記
- python學習筆記:第8天 檔案操作Python筆記
- Android學習筆記之build.gradle檔案Android筆記UIGradle
- 【動手學深度學習】第五章筆記:層與塊、引數管理、自定義層、讀寫檔案、GPU深度學習筆記GPU
- 【python系統學習17】python中的檔案讀寫Python
- Laravel 學習筆記一: 專案框架和配置檔案Laravel筆記框架
- 學習記錄Spring Boot 記錄配置細節Spring Boot
- .NET 6學習筆記(1)——通過FileStream實現不同程式對單一檔案的同時讀寫筆記
- Python第一節學習筆記Python筆記
- Yaml檔案語法及讀寫小結YAML
- Linux檔案讀、寫、執行許可權Linux