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)
相關文章
- LevelDB學習筆記 (2): 整體概覽與讀寫實現細節筆記
- 【C#學習筆記】寫檔案C#筆記
- 【C#學習筆記】讀檔案C#筆記
- JVM學習筆記——Class類檔案解讀JVM筆記
- 學習筆記(30):Python資料清洗實戰-Excel檔案讀寫筆記PythonExcel
- Python 3 學習筆記之——鍵盤輸入和讀寫檔案Python筆記
- Linux 檔案許可權 學習筆記Linux筆記
- Linux檔案型別(學習筆記六)Linux型別筆記
- 學習筆記:在windows和linux下寫檔案的些許不同筆記WindowsLinux
- Linux學習筆記——如何使用echo指令向檔案寫入內容Linux筆記
- python學習之讀寫檔案Python
- Integer類小細節隨筆記錄筆記
- 筆記——Android 中的小細節筆記Android
- Java學習筆記之檔案Java筆記
- Linux 學習筆記--檔案打包與解壓縮Linux筆記
- 4、Linux入門學習筆記 檔案操作命令Linux筆記
- Linux學習筆記——例說makefile 多個檔案Linux筆記
- linux磁碟和檔案系統的學習筆記Linux筆記
- Python零基礎學習筆記(三十)——讀檔案Python筆記
- DVWA-檔案包含學習筆記筆記
- Linux學習筆記——例說makefile 單個C檔案Linux筆記
- Qt學習之路(57): 文字檔案讀寫薦QT
- Attention機制全流程詳解與細節學習筆記筆記
- R讀寫檔案略記
- Java學習筆記之I/O流(讀取壓縮檔案以及壓縮檔案)Java筆記
- Linux 學習筆記--目錄結構及檔案基本操作Linux筆記
- Linux 學習筆記--環境變數與檔案查詢Linux筆記變數
- Linux學習筆記:rm刪除檔案和資料夾Linux筆記
- Linux學習筆記--rm命令(刪除檔案或目錄)Linux筆記
- 忽略某些檔案 —— Git 學習筆記 05Git筆記
- OS學習筆記六:檔案系統筆記
- 【C#學習筆記】儲存檔案C#筆記
- 【C#學習筆記】播放wav檔案C#筆記
- redo日誌檔案學習筆記(一)筆記
- SGI STL學習筆記(3):copy演算法實現細節筆記演算法
- 物聯網學習教程—檔案的讀寫二
- 物聯網學習教程—檔案的讀寫一
- Linux核心中讀寫檔案Linux