seek -
オープンされているチャネルのアクセス位置を変更します。
seek channelId offset ?origin?
channelId の現在のアクセス位置を変更します。
ChannelId はTcl の標準チャネル( stdinや stdoutやstderr
) のようなオープンされるチャネル識別子でなければならず、 openや socketコマンドによって返されるチャネル識別子、
あるいはTcl拡張に提供されたチャネル作成コマンドの結果などです。
offset とorigin 引数はchannelId の次の読み書きが行われる位置を指定します。
offset は整数(負でもよい)でなければならず、origin は以下の内の1つでなければなりません。
- start
- 新しいアクセス位置は指定されたファイルやデバイスの先頭からのoffset
バイトになります。
- current
- 新しいアクセス位置は現在のアクセス位置からのoffset バイトになります。
負のoffsetは指定されたファイルやデバイスのアクセス位置を後方に移動させます。
- end
- 新しいアクセス位置は指定されたファイルやデバイスの末尾からのoffset
バイトになります。負のoffset はアクセス位置をファイル終端の前に置き、正のoffset
はアクセス位 置をファイル終端の後に置きます。
origin 引数のデフォルトは start です。
このコマンドはチャネルが非ブロックモードであってもチャネルのバッファされた出力の全てをコマンドが制御を戻す前に書き出します。
このコマンドはバッファされ、まだ読み込んでいない入力を破棄します。
このコマンドは空文字列を返します。このコマンドがseek をサポートしていないファイルやデバイスのチャネルに適用されるとエラーが発生します。
注意すべきなのはoffset 値が文字オフセットではなく、バイトオフセットであることです。read と異なり、seek と tell
の両方とも文字オフセットではなくバイトオフセットで作動します。
file, open, close, gets, tell, Tcl_StandardChannels
access position, file, seek
Copyright © 1993 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.
|