Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - Русский

Please note that the recommended version of Scilab is 6.0.1. This page might be outdated.
See the recommended documentation of this function

Scilab help >> Files : Input/Output functions > mseek

mseek

バイナリファイルの中でカレントの位置を設定する.

呼び出し手順

mseek(n [,fd, flag])

パラメータ

n

正のスカラー: 原点からのオフセット(単位:バイト数).

fd

スカラー. mopen関数により返されたfd パラメータ . デフォルトは -1 で,直近にオープンされたファイルを意味します.

flag

文字列. 原点を指定. デフォルト値: 'set'.

説明

関数 mseek() は,ストリームfd上での 次の入力または出力処理の位置を設定します. 新たな位置は, flag の値, つまり, 'set', 'cur' または 'end' に基づき,先頭位置からまたは 現在位置からまたはファイル終端からの符号付きの位置を表す バイト数nで指定した位置となります.

mseek() により ファイルの既存のデータの終端より後の部分にファイル位置インジケータを 設定することができるようになります. データがこのような場所に書き込まれた時, 隙間にあるデータが読み込まれた場合に, 隙間に実際に書き込まれたデータに達するまでは 0 が返されます. mseek(), はそれ自体では, ファイルの大きさを拡張しません.

file3='test3.bin'
fd1= mopen(file3,'wb');
for i=1:10, mput(i,'d'); end 
mseek(0);
mput(678,'d');
mseek(0,fd1,'end');
mput(932,'d');
mclose(fd1)
fd1= mopen(file3,'rb');
res=mget(11,'d')
res1=[1:11]; res1(1)=678;res1($)=932;
if res1<>res ;write(%io(2),'Bug');end;
mseek(0,fd1,'set');

// 保存されたデータより多くのデータを読み込もうとする 
res1=mget(100,'d',fd1);
if res1<>res ;write(%io(2),'Bug');end;
meof(fd1)
mclearerr(fd1)
mclose(fd1);

参照

  • mclose — オープンされているファイルを閉じる
  • meof — ファイルの終端に達したかどうかを確認する
  • mfprintf — 変換,整形し,ファイルにデータを書き込む
  • fprintfMat — 行列をファイルに書き込む .
  • mfscanf — 標準入力から入力を読み込む (C言語の scanf 関数へのインターフェイス)
  • fscanfMat — テキストファイルから行列を読み込む.
  • mget — 指定したバイナリ形式で バイトまたはワードを読み込み, double に変換
  • mgetstr — 文字列を読み込む
  • mopen — ファイルをオープン
  • mprintf — 変換, 整形し, Scilab主ウインドウにデータを書き込む
  • mput — 指定したバイナリ形式でバイトまたはワードを書き込む
  • mputstr — ファイルに文字列を書き込む
  • mscanf
  • mseek — バイナリファイルの中でカレントの位置を設定する.
  • mtell — バイナリファイルの管理
  • mdelete — ファイルを削除
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Oct 01 17:40:33 CEST 2012