Scilab 5.3.0
- Scilab Online Help
- Files : Input/Output functions
- basename
- chdir
- copyfile
- createdir
- deletefile
- dir
- dirname
- dispfiles
- fileext
- fileinfo
- fileparts
- filesep
- findfiles
- fprintf
- fprintfMat
- fscanf
- fscanfMat
- fullfile
- fullpath
- get_absolute_file_path
- getdrives
- getlongpathname
- getrelativefilename
- getshortpathname
- %io
- isdir
- isfile
- listfiles
- listvarinfile
- ls
- maxfiles
- mclearerr
- mclose
- mdelete
- meof
- merror
- mfprintf
- mscanf
- mget
- mgetl
- mgetstr
- mkdir
- mopen
- movefile
- mput
- mputl
- mputstr
- mseek
- mtell
- newest
- pathconvert
- pathsep
- pwd
- removedir
- rmdir
- save_format
- scanf
- scanf_conversion
- sscanf
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
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);
参照
<< mputstr | Files : Input/Output functions | mtell >> |