本文為學習筆記,方便日後複習,內容為平時學習其他博主的文章時記錄下來的以及個人所補充的內容。本人也會在每個部分留下原創位址,尊重原創。
lseek 函式每個開啟的檔案都有乙個與其相關連的「當前檔案偏移量」( current file offset )。
它通常是乙個非負整數,用以度量從檔案開始處計算的位元組數。
通常,讀、寫操作都從當前檔案偏移量開始,並使偏移量增加所讀寫的位元組數。
lseek呼叫僅將當前的檔案偏移量記錄在核心中,它並不引起任何的 i/o 操作。然後,該偏移量用於下乙個讀或寫操作。
函式原型
#include
off_t lseek(int fildes,off_t offset ,int whence);
引數:fildes 為已開啟的檔案描述詞
offset 為根據引數whence來移動讀寫位置的位移數。
whence為下列其中一種:(seek_set,seek_cur和seek_end和依次為0,1和2).
seek_set 將讀寫位置指向檔案頭後再增加offset個位移量。
seek_cur 以目前的讀寫位置往後增加offset個位移量。
seek_end 將讀寫位置指向檔案尾後再增加offset個位移量。
注意:當whence 值為seek_cur 或seek_end時,引數offet允許負值的出現。
返回值:
當呼叫成功時則返回目前的讀寫位置,也就是距離檔案開頭多少個位元組。若有錯誤則返回-1,errno 會存放錯誤**。
可能設定erron的錯誤**:
ebadf: fildes不是乙個開啟的檔案描述符。
espipe:檔案描述符被分配到乙個管道、套接字或fifo。
einval:whence取值不當。
下列是較特別的使用方式:
1) 欲將讀寫位置移到檔案開頭時:
lseek(int fildes,0,seek_set);
2) 欲將讀寫位置移到檔案尾時:
lseek(int fildes,0,seek_end);
3) 想要取得目前檔案位置時:
lseek(int fildes,0,seek_cur);
Linux操作彙總
linux操作彙總 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式...
C 檔案操作彙總
windows程式設計中檔案操作有以下幾種常見方法 1.c語言中檔案操作。2.c 語言中的檔案操作。3.win32 api函式檔案操作。4.mfc cfile類檔案操作。5.mfc cfiledialog類的檔案操作。6.登錄檔檔案操作。下面我來詳細說明一下各種檔案操作方法 1.c語言中檔案操作.需...
linux 常用操作彙總
1 vi編輯器的幾種模式 普通模式 normal mode 啟動vim時預設就是這個模式 插入模式 insert mode 命令列模式 ex mode 在普通模式下按 即可進入命令列模式,最下一行變成編輯,可以在最下行輸入命令 可視模式 visual mode 在普通模式下按v進入可視模式 wq x...