アプリ版:「スタンプのみでお礼する」機能のリリースについて

seek関数について少し質問させてください。

seek ファイルハンドル,オフセット,基準位置

と、某書籍に書いてありましたが、
オフセットのほうが元の位置で、基準位置が
ファイルポインタを移動させる場所なんでしょうか?

例えば、

seek LOCK,0,2

の場合、ファイルハンドルLOCKの中のファイルポインタを0(ファイルの先頭)から2(ファイルの最後)に移動させるということでしょうか?

そうであるならば、
seek LOCK,0,0
の場合、どういう意味になるのでしょう?

要点をまとめますと、ファイルハンドル以後の二つの数値の関係が今ひとつつかめていないということになります。

宜しくお願い致します。

A 回答 (2件)

No.1のarukamunです。



>seek LOCK,10,2
>というのは、
>基準位置2、つまりファイルの終わりから、
>10バイトのところに移動する
>ということになりますよね?

ファイルの終わりから+10バイトの所へ移動できません。また、前に戻る事もありません。
恐らくエラーになって0を返すと思います。

オフセット値はマイナス値も指定できますので、前に戻りたければ

seek LOCK,-10,2

の様に指定します。
    • good
    • 0
この回答へのお礼

ありがとうございます。

なるほど、常に後方へしか移動しないということなんですね。
非常によくわかりました。
これでなんとかseek関数が使えそうです。
ご丁寧にありがとうございました。

お礼日時:2003/05/18 11:11

seek ファイルハンドル, オフセット, 基準位置



ここで基準位置なのですが、
0, 1, 2の3通りしかありません。

0:ファイルの先頭から
1:現在のファイルポインタから
2:ファイルの終わりから

ですね。
オフセットはその基準の位置からどれだけずらすか、もしくはずれているかですね。

seek LOCK,0,2

ファイルポインタLOCKをファイルの終わりから0バイトの所に移動(変更)する。

seek LOCK,0,0

ファイルポインタLOCKをファイルの先頭から0バイトの所に移動(変更)する。

要するに、基準位置を基準にして、オフセット分移動した所を指すという事です。

お解り頂けましたでしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございます。

となりますと、
seek LOCK,10,2
というのは、
基準位置2、つまりファイルの終わりから、
10バイトのところに移動する
ということになりますよね?

その場合、ファイルの終わりから前方向に戻るということでしょうか?

基準位置が0の場合は、後ろ方向、つまり右に進むということになるのでしょうか?

お礼日時:2003/05/18 01:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!