- 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
mopen
ファイルをオープン
呼び出し手順
[fd,err]=mopen(file [, mode, swap ])
パラメータ
- file
文字列. オープンするファイルのパス名.
- mode
ファイルが読み込み(r), 書き込み (w), または追加 (a) のどれか, ファイルが更新用にオープンされるかどうか(+)を制御する文字列. mode にはバイナリファイルを示す b パラメータを含むことも可能です.
- swap
スカラー.
swap
が存在し,swap=0
の場合, 自動バイトスワップは無効になります.- err
スカラー. エラーインジケータ. merror参照.
- fd
スカラー.
mopen
関数によい返されたfd
パラメータがファイル記述子(正の整数)として返されます.
説明
mopen
は,C言語のfopen
プロシージャと互換の方法でファイルをオープンするために
使用できます.
swap引数が指定されない場合,
ファイルが"リトルインディアン IEEE 形式"でコード化されていると
仮定されます.
プロセッサのIEEE形式と一致する必要がある場合,
データはスワップされます.
modeパラメータはストリームに許可される アクセスを制御します. パラメータには以下の値の一つを指定することができます. この値のリストの中で, b文字はバイナリファイルを示します.
- r
ファイルを読み込み用にオープン.
- rb
バイナリファイルを読み込み用にオープン.
- rt
テキストファイルを読み込み用にオープン.
- w
書き込み用に新規ファイルを作成,または ファイルを長さ0に縮める.
- wb
書き込み用にバイナリファイルを作成,または ファイルを長さ0に縮める.
- wt
書き込み用にテキストファイルを作成,または ファイルを長さ0に縮める.
- a または ab
追記 (ファイル終端への書込み用にファイルをオープン, ファイルを書き込み用に作成).
- r+ または r+b
更新用にファイルをオープン (読み込みおよび書き込み).
- w+ または w+b
長さ0に縮めるまたは更新用にファイルを作成.
- a+ または a+b
追記 (更新用にファイルをオープンし, ファイルの終端に書き込み, または書き込み用にファイルを作成).
更新用にファイルをオープンする際, 結果のストリームに入力および出力の両方の処理を行うことができます. しかし,ファイル中の位置決め処理(mseek() 関数)を行わずに 出力処理を入力処理の直後に行うことはできません. また,入力処理がファイルの終端に達しない限り, ファイルの位置決め処理を中断せずに 入力処理を出力処理の直後に行うことはできません.
ファイルを追記用にオープンする場合(つまり,modeパラメータが a または a+ の場合),ファイルにすでにある情報を上書きすることは できません. fseek()関数により, ファイルの任意の位置にファイルポインタを移動することができますが, 出力をファイルに書き込む際に,カレントのファイルポインタは無視されます. 全ての出力はファイルの終端に書き込まれ, ファイル位置は出力の末尾に移動されます.
functionsのようにFortranと互換性のある方法でファイルをオープンするには,
file
関数を使用してください.
// 書き込んだファイルをバイナリとして読み込む // まずファイルに書き込む fd_wb = mopen(TMPDIR+'/writeread.bin','wb') // バイナリとして値を出力 mput(2003,'l',fd_wb); mput(2008,'i',fd_wb); mput(2012,'s',fd_wb); mput(98,'c',fd_wb); // TMPDIR+'/writeread.bin'を指すファイル記述子を閉じる mclose(fd_wb); // ファイルを読み込む fd_rb = mopen(TMPDIR+'/writeread.bin','rb') mget(fd_rb, 'l') mget(fd_rb, 'i') mget(fd_rb, 's') mget(fd_rb, 'c') mclose(fd_rb)
参照
<< mkdir | Files : Input/Output functions | movefile >> |