内容

名称

IO::Seekable - 为 I/O 对象提供基于查找的方法

概要

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

描述

IO::Seekable 没有自己的构造函数,因为它旨在被其他基于 IO::Handle 的对象继承。它提供允许查找文件描述符的方法。

$io->getpos

返回一个不透明的值,该值表示 IO::File 的当前位置,如果这不可能(例如不可查找的流,如终端、管道或套接字),则返回 undef。如果您的 C 库中提供了 fgetpos() 函数,则它用于实现 getpos,否则 perl 使用 C 的 ftell() 函数模拟 getpos。

$io->setpos

使用先前 getpos 调用值返回到先前访问的位置。成功时返回“0 但为真”,失败时返回 undef

有关以下支持的 IO::Seekable 方法的完整描述,请参见 perlfunc,这些方法只是对应内置函数的前端

$io->seek ( POS, WHENCE )

将 IO::File 查找到相对于 WHENCE 的位置 POS

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

返回新位置,或在失败时返回 undef。位置零将作为字符串 "0 but true" 返回

$io->tell

返回 IO::File 的当前位置,或在错误时返回 -1。

另请参阅

perlfunc"I/O 运算符" 在 perlop 中IO::Handle IO::File

历史

源自 Graham Barr <[email protected]> 的 FileHandle.pm