総合手引 | セクション 3 | English | Deutsch | オプション |
#include <stdio.h>
引数 mode は、以下のシーケンスの 1 つで始まる文字列を指します (このシーケンスには、別のキャラクタが続いても構いません)。
"r" | テキストファイルを読込み用にオープンします。 ストリームは、ファイルの最初に位置付けられます。 |
"r+" | 読込み用と書込み用にオープンします。 ストリームは、ファイルの最初に位置付けられます。 |
"w" | 書込み用に、ファイルを長さ 0 に切りつめるか、テキストファイルを作成します。 ストリームは、ファイルの最初に位置付けられます。 |
"w+" | 読込み用と書込み用にオープンします。 ファイルが存在しない場合はそのファイルが作成され、 存在する場合は切りつめられます。 ストリームは、ファイルの最初に位置付けられます。 |
"a" | 書込み用にオープンします。 ファイルが存在しない場合はそのファイルが作成されます。 ストリームは、ファイルの最後に位置付けられます。 それに続くファイルへの書き込みは、 fseek(3) のような操作の介在に関わりなく、 常にファイルの現時点での最後へと行われます。 |
"a+" | 読込み用と書込み用にオープンします。 ファイルが存在しない場合はそのファイルが作成されます。 ストリームは、ファイルの最後に位置付けられます。 それに続くファイルへの書き込みは、 fseek(3) のような操作の介在に関わりなく、 常にファイルの現時点での最後へと行われます。 |
mode 文字列には、3 番目の文字として、 または上で説明した 2 文字からなる文字列の間に指定する文字として、 文字 ``b'' を含めることができます。 これは ISO/IEC 9899:1990 ("ISO C90") との互換性を保つためのもので、効果はありません。 ``b'' は無視されます。
作成されたファイルのモードは、 " S_IRUSR amp;| S_IWUSR amp;| S_IRGRP amp;| S_IWGRP amp;| S_IROTH amp;| S_IWOTH" (0666) がプロセスの umask 値 ( umask(2) 参照) で修正されたものになります。
読み書きストリームでは、読込みと書込みをどのような順序でも 混ぜることができ、前バージョンの stdio のように、それらの間にシーク操作は必要ありません。 しかしながら、これは他のシステムへの移植性がありません。 というのは、 ANSI C は、入力オペレーションがファイルの終了に達していない場合、 ファイル位置付け関数が出力と入力の間に 介在することを要求しているからです。
fdopen() 関数は、既存のファイル記述子 fildes にストリームを関連付けます。 ストリームの mode には、ファイル記述子のモードとの互換性が必要です。 fclose(3) によってストリームが閉じられた時には、 fildes も閉じられます。
freopen() 関数は、 path が指す文字列の名前が付いたファイルを開き、 stream が指すストリームを関連付けます。 元のストリームが存在する場合、それは閉じられます。 mode 引数は、 fopen() 関数と同じです。 freopen() の主な使用目的は、標準テキストストリーム ( stderr, stdin stdout) に関連付けられたファイルを切替えることです。
[EINVAL] | |
fopen(), fdopen(), freopen() の mode が正しくありません。 | |
fopen(), fdopen(), freopen() 関数は、エラーが発生すると、ルーチン malloc(3) で規定されたエラーを errno に設定することもあります。
fopen() 関数は、エラーが発生すると、ルーチン open(2) で規定されたエラーを errno に設定することもあります。
fdopen() 関数は、エラーが発生すると、ルーチン fcntl(2) で規定されたエラーを errno に設定することもあります。
freopen() 関数は、エラーが発生すると、ルーチン open(2), fclose(3), fflush(3) で規定されたエラーを errno に設定することもあります。
FOPEN (3) | June 4, 1993 |
総合手引 | セクション 3 | English | Deutsch | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.