| MATLAB Function Reference | ![]() |
ファイルをオープンしたり、オープンしているファイルに関する情報を得ます。
表示
fid = fopen(filename)
fid = fopen(filename,permission)
[fid,message] = fopen(filename,permission,format)
fids = fopen('all')
[filename,permission, format] = fopen(fid)
詳細
fid = fopen(filename)
は、ファイル filename を読むために、オープンします(PC 上で、fopen は、バイナリリードアクセスのためにファイルをオープンします)。
filename は、MATLABPATH 相対部分パス名でも構いません。ファイルが、読み取り用にオープンされていて、カレントワーキングディレクトリ内に発見できない場合、fopen は、下位の MATLAB サーチパスを探索します。
fid は、スカラ MATLAB 整数で、ファイル識別子と言われます。fid は、他のファイル入力/出力ルーチンに最初の引数として使用します。fopen がファイルをオープンできない場合、-1 が戻ります。
fid = fopen(filename,permission)
は、permission で指定したモードで、ファイル filename をオープンします。permission には、つぎの値を設定することができます。
ファイルは、バイナリモード、または、テキストモードのいずれかでオープンされます。テキストモードで、fopen は、入力上でラインセパレータを削除し、出力用にそれを加えます。バイナリモードでは、ラインセパレータは、削除されず、また付加もされません。
fopen は、デフォルトは、バイナリモードでファイルをオープンします。しかし、パミッション文字列のいずれかに 'b' を付加することで、バイナリモードを指定することができます。たとえば、バイナリリードアクセス用にファイルをオープンするには、'rb'を指定します。テキストモードで、ファイルをオープンするには、パミッション文字列に 't' を付加します。たとえば、'rt'です。PC 上では、テキストとバイナリを区別する必要があります。UNIX システムでは、テキストとバイナリを区別する必要がありません。
[fid,message] = fopen(filename,permission)
は、上で記述したようにファイルをオープンします。ファイルをオープンできない場合、fid は、-1 になり、message は、システムに依存したエラーメッセージを含んでいます。fopen が、ファイルのオープンに成功すると、message は、空になります。
[fid,message] = fopen(filename,permission,format) は、上で記述したようにファイルをオープンします。format は、freadを使って、ファイルから読み込んだデータの数値フォーマットを定義する文字列であるか、または、fwrite を使って、ファイルに書き込んだデータの数値フォーマットを定義する文字列です。format には、つぎのいずれかの値を使用できます。
引数 format を省略すると、fread、または、fwrite は、ローカルマシンの数値フォーマットを使います。fread、または、fwrite をコールするとき、fopenへのコールで指定した数値フォーマットを書き換えることができます。
fids = fopen('all')
は、すべてのオープンしているファイルのファイル識別子を含む行ベクトルを戻します。しかし、その中には、(標準出力と標準エラーをそれぞれ示す)1 と 2 を含んではいません。
ベクトルの中の要素数は、オープンしているファイルの数と同じです。
[filename,permission,format] = fopen(fid)
は、指定したファイルに関連したフルファイル名filename や permission、formatを出力します。正しくない fid は、すべての出力引数に対して、空文字列を出力します。permission と format は、共にオプションです。
2つの fid は、前もって定義され、明示的に、オープンやクローズできません。
1 |
標準出力。これは、付加作業用に常にオープンしています(permission を 'a'に設定)。 |
2 |
標準誤差、これは、付加作業用に常にオープンしています。
(permission を 'a'に設定)。 |
例題
例題は、fopen を使って、ファイルをオープンし、fopenにより戻されるfidをファイルからデータを読む他のファイル I/O 関数に渡し、そして、ファイルをクローズします。
fid=fopen('fgetl.m');
while 1
tline = fgetl(fid);
if ~ischar(tline), break, end
disp(tline)
end
fclose(fid);
参考
fclose, ferror, fprintf, fread, fscanf, fseek, ftell, fwrite
| fminsearch | fopen (serial) | ![]() |