seek FILEHANDLE, OFFSET, WHENCE
seek
を使えば、ファイルの任意のレコードにアクセスできます。この関数は、FILEHANDLE
のOFFSET
位置にファイルポインタをセットします。成功すると 1、失敗すると 0 を返します。
- FILEHANDLE
- FILEHANDLE
は、ファイルハンドル名またはファイルハンドルオブジェクトへのリファレンスになるような式でもかまいません。 - OFFSET
- OFFSET はバイト単位で位置を指定します。
- WHENCE
- WHENCE によって、OFFSET がファイルのどこを基点とするかを指定します。WHENCE
の値が、0 ならば、ファイルポインタを OFFSET の位置へ、1 ならば、現在位置から OFFSET
離れた位置へ、2 ならば、EOF から OFFSET だけ離れた位置へ、ファイルポインタを設定します。
WHENCE
WHENCE | 意味 |
---|---|
0 | ファイルの先頭 |
1 | 現在の位置 |
2 | ファイルの末尾 |
seekの使い方
open (FH, $log); # ファイルの末尾に移動 seek(FH, 2, 0);
他のプロセスによって長さが増えるようなファイルに追随
for ( ;; ){ while ( <LOG> ){ ... } sleep 15; seek LOG, 0, 1; }
プロセスについては用語集「プロセス」を参照してください。