1. 程式人生 > >linux函式程式碼操練---檔案操作----04lseek()函式

linux函式程式碼操練---檔案操作----04lseek()函式

基礎知識

lseek對檔案描述符的指標位置進行設定。
函式原型
off_t lseek(int fildes,off_t offset,int wence);

實驗內容

①利用SEEK_SET定義偏移量
②利用SEEK_CUR定義偏移量
③利用SEEK_END定義偏移量
④lseek返回值的探究

利用SEEK_SET定義偏移量

程式截圖
這裡寫圖片描述
執行結果
這裡寫圖片描述
說明
指標相對於檔案開頭移動三個位元組,然後從第四個位元組開始寫資料。

利用SEEK_CUR定義偏移量

程式截圖
這裡寫圖片描述
執行結果
這裡寫圖片描述
說明
程式先相對於檔案開頭移動3個位元組,此時指標指向第三個位元組,接著相對當前位置移動2個位元組,此時指標指向第5個位元組,寫內容時,從第六個位元組的位置開始寫,覆蓋掉原來的內容。

利用SEEK_END定義偏移量

程式截圖
這裡寫圖片描述
執行結果
這裡寫圖片描述
檔案指標相對於最後一位向前移動3位,指標指向倒數第四位,寫內容時從倒數第三位寫入。正數表示向後偏移,負數表示向前偏移,如果向前偏移超過了檔案頭,則後續偏移不會繼續,如果向後偏移超過檔案尾則超過部分用0補充

lseek返回值的探究

lseek呼叫成功時返回相對開頭偏移的位元組數
lseek呼叫失敗時返回-1

程式截圖
這裡寫圖片描述
執行結果
這裡寫圖片描述

長沙理工大學