seek

ReferenceTOPKeywords

コマンド名

seek - オープンされているチャネルのアクセス位置を変更します。

構文

seek channelId offset ?origin? 

解説

channelId の現在のアクセス位置を変更します。

ChannelId はTcl の標準チャネル( stdinstdoutstderr ) のようなオープンされるチャネル識別子でなければならず、 opensocketコマンドによって返されるチャネル識別子、 あるいは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.