関数順 インデックス
目的別 インデックス

構文
 
 seek ファイル・ハンドル, POSITION, WHENCE  
返り値
 
 成功時に真

説明

  • ファイル・ハンドルのファイル・ポインタの位置を設定します。
  • POSITIONで位置の指定を行いますが,WHENCEの値によって取る位置が変わります。
  • WHENCEの値が0の場合は位置をPOSITIONに,1の場合は現在位置からPOSITIONバイト加えた位置に,2の場合は終端からPOSITIONバイト加えた位置にファイル・ポインタを移動します。

使用例

ファイルtest.txtに追加された行を表示する
#!/usr/bin/perl
use strict;
use warnings;
use POSIX;

my $filename = "test.txt";
open my $fh, "<", $filename or die "$!:$filename";
my $ret = seek $fh, 1, SEEK_END; # 末尾に移動
while (1) {
  while (my $line = <$fh>) {
    print $line;
  }
} continue {
  sleep 1;
}
ファイルdata.txtを10バイトの大きさに切り詰める
#!/usr/bin/perl
use strict;
use warnings;
use POSIX;

my $size = 10;
my $filename = "data.txt";
my $filesize = -s $filename;

if ($filesize > $size) {
  open my $fh, "+<", $filename or die "$!:$filename";
  seek $fh, 0, SEEK_SET or die $!;
  truncate $fh, $size or die $!;
  close $fh;
}