目錄

名稱

IO::Seekable - 為 I/O 物件提供基於搜尋的方法

語法

use IO::Seekable;
package IO::Something;
@ISA = qw(IO::Seekable);

說明

IO::Seekable 沒有自己的建構函數,因為它預計會被其他基於 IO::Handle 的物件繼承。它提供允許搜尋檔案描述符的方法。

$io->getpos

傳回一個不透明值,表示 IO::File 的目前位置,或 undef(例如無法搜尋的串流,例如終端機、管線或 socket)。如果 C 函式庫中提供 fgetpos() 函數,則會使用它來實作 getpos,否則 perl 會使用 C 的 ftell() 函數模擬 getpos。

$io->setpos

使用先前 getpos 呼叫的值,以返回先前拜訪過的位置。成功時傳回「0 但為真」,失敗時傳回 未定義

請參閱 perlfunc,以取得以下所支援的每種 IO::Seekable 方法的完整說明,這些方法僅為對應內建函式的前端

$io->seek ( POS, WHENCE )

將 IO::File 搜尋到位置 POS,相對於 WHENCE

WHENCE=0 (SEEK_SET)

POS 是絕對位置。(相對於檔案開頭搜尋)

WHENCE=1 (SEEK_CUR)

POS 是從目前位置的偏移量。(相對於目前位置搜尋)

WHENCE=2 (SEEK_END)

POS 是從檔案結尾的偏移量。(相對於結尾搜尋)

如果您不希望在程式碼中使用數字 0 12,則可以從 Fcntl 模組匯入 SEEK_* 常數。

成功時傳回 1,否則傳回 0

$io->sysseek( POS, WHENCE )

類似於 $io->seek,但使用系統呼叫 lseek(2) 直接設定 IO::File 的位置,因此會混淆大多數 perl IO 算子,但 sysread 和 syswrite 除外(請參閱 perlfunc 以取得完整詳細資料)

傳回新位置,或在失敗時傳回 未定義。零的位置會傳回為字串 「0 但為真」

$io->tell

傳回 IO::File 的目前位置,或在發生錯誤時傳回 -1。

另請參閱

perlfuncperlop 中的「I/O 算子」IO::Handle IO::File

歷程

由 Graham Barr <gbarr@pobox.com> 從 FileHandle.pm 衍生而來