ファイルをオープン
[fd, err] = mopen(file [, mode, swap ])
オープンするファイルのパスを有する文字列.
ファイルにリクエストするアクセスモードを指定する文字列.
スカラー. swap
が存在し,
swap = 0
の場合,
自動バイトスワップは無効になります.
デフォルト値は 1です.
スカラー. エラーインジケータ.
エラー値: | エラーメッセージ: |
0 | エラー無し |
-1 | 論理ユニットがなくなりました |
-2 | ファイルをオープンできませんでした |
-3 | メモリがなくなりました |
-4 | 名前が無効 |
-5 | 無効なステータス |
スカラー: ファイル記述子(正の整数).
mopen
は,C言語のfopen
プロシージャと互換の方法でfile
をオープンするために
使用できます.
swap
引数が指定されない場合,
ファイルが"リトルインディアン IEEE 形式"でコード化されていると
仮定されます.
プロセッサのIEEE形式と一致させる必要がある場合,
データはスワップされます.
mode
パラメータは,ストリームにリクエストされる
アクセス型を制御します.
パラメータには以下の値の一つを指定することができます:
読み込み用にオープン(デフォルト). ファイルは存在する必要があり,そうでない場合は失敗します.
書き込み用にオープン. ファイルが存在する場合,その内容は破棄されます.
追記用にオープン. ファイルが存在しない場合は作成されます.
読込みおよび書き込み両方でオープン. ファイルは存在する必要があり,そうでない場合は失敗します.
読込みおよび書き込み両方でオープン. ファイルが存在する場合,その内容は破棄されます.
読込みおよび書き込み両方でオープン. ファイルが存在しない場合は作成されます.
加えて, ファイルの型を指定するために以下の文字を使用できます:
テキストファイル.
バイナリファイル (デフォルト).
デフォルトのアクセスモードは 'rb'
(バイナリファイル読込み)です.
![]() | 注意: Windowsでは, テキストファイルモードで, CR (復改) - LF (ラインフィード)
の組は読込み次にLFに変換され,
LFは書き込み時に CR-LF の組に変換されます. |
更新用にファイルをオープンする際,
結果のストリームに入力および出力の両方の処理を行うことができます.
しかし,ファイル中の位置決め処理(mseek
関数)を行わずに
出力処理を入力処理の直後に行うことはできません.
また,入力処理がファイルの終端に達しない限り,
ファイルの位置決め処理を中断せずに
入力処理を出力処理の直後に行うことはできません.
ファイルを追記用にオープンする場合(つまり,mode
パラメータが
a
またはa+
の場合),
ファイルにすでにある情報を上書きすることは
できません. mseek
関数により,
ファイルの任意の位置にファイルポインタを移動することができますが,
出力をファイルに書き込む際に,カレントのファイルポインタは無視されます.
全ての出力はファイルの終端に書き込まれ,
ファイル位置は出力の末尾に移動されます.
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) | ![]() | ![]() |