C語言檔案操作lseek

2021-08-02 10:26:16 字數 660 閱讀 6199

相關函式:dup, open, fseek

標頭檔案:#include #include

定義函式:off_t lseek(int fildes, off_t offset, int whence);

引數 whence 為下列其中一種:

seek_set 引數offset 即為新的讀寫位置.

seek_cur 以目前的讀寫位置往後增加offset 個位移量.

seek_end 將讀寫位置指向檔案尾後再增加offset 個位移量. 當whence 值為seek_cur 或

seek_end 時, 引數offet 允許負值的出現.

下列是教特別的使用方式:

1) 欲將讀寫位置移到檔案開頭時:lseek(int fildes, 0, seek_set);

2) 欲將讀寫位置移到檔案尾時:lseek(int fildes, 0, seek_end);

3) 想要取得目前檔案位置時:lseek(int fildes, 0, seek_cur);

返回值:當呼叫成功時則返回目前的讀寫位置, 也就是距離檔案開頭多少個位元組. 若有錯誤則返回-1, errno 會存放錯誤**.

附加說明:linux 系統不允許lseek()對tty 裝置作用, 此項動作會令lseek()返回espipe.

C語言lseek 函式 移動檔案的讀寫位置

引數 whence 為下列其中一種 seek set 引數offset 即為新的讀寫位置.seek cur 以目前的讀寫位置往後增加offset 個位移量.seek end 將讀寫位置指向檔案尾後再增加offset 個位移量.當whence 值為seek cur 或 seek end 時,引數off...

檔案lseek操作產生空洞檔案的方法

在檔案操作過程中,lseek操作可以偏移到檔案的任意位置。在unix檔案操作中,檔案位移量可以大於檔案的當前長度,在這種情況下,對該檔案的下一次寫將延長該檔案,並在檔案中構成乙個空洞,這一點是允許的。位於檔案中但沒有寫過的位元組都被設為 0。如果 offset 比檔案的當前長度更大,下乙個寫操作就會...

lseek和檔案末尾

檔案末尾可繼續插入資料 使用lseek int fd,int offset,int whence 可跳到指定檔案位置讀寫 注 fd為檔案檔案描述符,使用中的open 獲得 格式為 int fd open filename o rdwr o rdwr為檔案開啟模式,具體查詢open 的man手冊。標頭...