Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.1.0 - 日本語

Change language to:
English - Français - Português - Русский

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

Scilabヘルプ >> Files : Input/Output functions > mseek

mseek

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

呼び出し手順

mseek(n [,fd, flag])

引数

n

スカラー: オフセット(単位:バイト数).

fd

スカラー: mopen関数により返されたファイル記述子. -1は直近にオープンされたファイルを意味します. デフォルト値は-1です.

flag

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

説明

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

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

file3=fullfile(TMPDIR,'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 then
  write(%io(2),'Bug');
end
mseek(0,fd1,'set');

// 保存されたデータより多くのデータを読み込む
res1=mget(100,'d',fd1);
if res1<>res then
  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 — ファイルを削除
Report an issue
<< mputstr Files : Input/Output functions mtell >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 25 08:53:22 CET 2020