系統呼叫之lseek

2021-10-22 18:18:39 字數 437 閱讀 8457

注意:這個指標是和檔案描述符相掛鉤的,並不與這個檔案掛鉤,所以可以有多個程序來對這個檔案進行操作,不會影響各自。

當從檔案讀取資料時,核心從指標指向的位置開始,讀取指定的位元組數,然後移動指標,指向下乙個未被讀取過的位元組,寫檔案的過程也是類似。

off_t oldpos = lseek(int fd, off_t disk, int base);

引數說明

fd 是檔案描述符,disk是相對於 base的偏移量,base 是個基準

返回值

返回 相對於檔案開頭的偏移量,也就是當前位置

如果遇到錯誤 那麼返回-1

① seek_set 0 檔案開頭

②seek_cur 1 當前位置

③seek_end 2 檔案結束

Unix系統程式設計()lseek系統呼叫

之前知道lseek這個系統呼叫可以改變檔案的偏移量,或者叫偏移量或指標。檔案偏移量是指執行下乙個read或者write操作的檔案起始位置,會以相對於檔案頭部起始點的檔案當前位置來表示。檔案第乙個位元組的偏移量為0。檔案開啟時,會將檔案偏移量設定為指向檔案的開始,以後每次read或write呼叫將自動...

Linux系統呼叫之open , close

open函式可以開啟或建立乙個檔案。include include include intopen constchar pathname,intflags intopen constchar pathname,intflags,mode t mode 返回值 成功返回新分配的檔案描述符,出錯返回 1...

系統呼叫之檔案訪問

1 write 系統呼叫 系統呼叫write 的作用是,把緩衝區 buf的前 nbytes 位元組寫入到與檔案描述符 fildes 關聯的檔案中,同時它會返回實際寫入的位元組數。如果返回 0,就表示為寫出任何資料 如果是 1,就表示在 write 系統呼叫中出現了錯誤,對應的錯誤碼儲存在全域性變數 ...