≫ ホーム ≫ C言語ヘッダファイル別一覧 | C言語アルファベット別一覧 ≫ stdio.h ≫ fopen
ファイルをオープン (open) します.
#include <stdio.h>
FILE *fopen( const char * restrict filename, const char * restrict mode );
fopen 関数はfilename が指す文字列を名前とするファイルを mode が指すモードでオープンし,そのファイルにストリーム (stream) を結び付けます.
引数 mode は文字列で指定します.定義されていないモードを指定した場合の動作は未定義です.
引数 mode に指定できるモードは以下の通りです.
モード | ファイル | 機能 | ファイルが ないとき |
---|---|---|---|
"r" | テキスト | 読み取り | エラー |
"w" | テキスト | 書き込み | 新規作成 |
"a" | テキスト | 追加書き込み | 新規作成 |
"rb" | バイナリ | 読み取り | エラー |
"wb" | バイナリ | 書き込み | 新規作成 |
"ab" | バイナリ | 追加書き込み | 新規作成 |
"r+" | テキスト | 更新(読み取り及び書き込み) | エラー |
"w+" | テキスト | 更新(読み取り及び書き込み) | 新規作成 |
"a+" | テキスト | 更新(追加書き込み) | 新規作成 |
"r+b" もしくは "rb+" | バイナリ | 更新(読み取り及び書き込み) | エラー |
"w+b" もしくは "wb+" | バイナリ | 更新(読み取り及び書き込み) | 新規作成 |
"a+b" もしくは "ab+" | バイナリ | 更新(追加書き込み) | 新規作成 |
fopen 関数を使用したサンプルプログラムを以下に示します.以下のサンプルプログラムでは fopen でファイルをオープンし,fputc で文字配列の文字をファイル書き込んだ後 fclose でファイルをクローズしています.
/* header files */
#include <stdio.h>
#include <stdlib.h>
/* main */
int main(void) {
FILE *fp;
char *filename = "sample.txt";
char *output= "Snoopy";
int i;
/* ファイルのオープン */
if ((fp = fopen(filename, "w")) == NULL) {
fprintf(stderr, "%sのオープンに失敗しました.\n", filename);
exit(EXIT_FAILURE);
}
/* "Snoopy"をsample.txtに出力 */
for ( i = 0; i < 6; i++ ) {
fputc(output[i], fp);
}
/* ファイルのクローズ */
fclose(fp);
return EXIT_SUCCESS;
}
sample.txt には以下のように書き込まれます.
Snoopy
たくさんあるc言語関連の書籍の中でも特に役に立った本です.よかったら参考にしてみてください.
c言語の実践的参考書.少々値段は張りますが初心者を脱しようとしている人は絶対に読むべきです.
文法だけでなく,コーディングスタイルやデバッグなど文字通り「実践的」なことが書かれているので非常にためになります.
オライリーの本は,読みにくい本が多いのですが本書はとても読みやすくオススメです.
ポインタの解説書としては最高の書籍です.
この1冊でポインタを完全に理解することができます.全くの初学者が読むには敷居が高いですが,入門書を読み終えた後に読むと非常に有益です.