【書式】
#include <stdio.h>
FILE *fopen(const char *filename, const char *mode);
FILE *fdopen(int fd, const char *mode);
【解説】
fopen()はfilename で示されるファイルを高レベル入出力用にオープンしま
す。
fdopen()はハンドルfdを高レベル入出力用のファイルポインタに結びつけま
す。
文字列modeは、次のうちの1つでなければなりません。
"r"
テキストファイルを入力モードでオープンします
"w"
新しいテキストファイルを作り、出力モードでオープンします。すでに
同じ名前のファイルがある場合はその内容は捨てられます
"a"
テキストファイルを追加・出力モードでオープンします。ファイルがな
い場合は新たにファイルを作ります
"rb"
バイナリファイルを入力モードでオープンします
"wb"
新しいバイナリファイルを作り、出力モードでオープンします。すでに
同じ名前のファイルがある場合はその内容は捨てられます
"ab"
バイナリファイルを追加・出力モードでオープンします。ファイルがな
い場合は新たにファイルを作ります
"r+"
テキストファイルを入出力モードでオープンします
"w+"
新しいテキストファイルを作り、入出力モードでオープンします。すで
に同じ名前のファイルがある場合はその内容は捨てられます
"a+"
テキストファイルを追加・入出力モードでオープンします。ファイルが
ない場合は新たにファイルを作ります
"r+b"
バイナリファイルを入出力モードでオープンします
"w+b"
新しいバイナリファイルを作り、入出力モードでオープンします。すで
に同じ名前のファイルがある場合はその内容は捨てられます
"a+b"
バイナリファイルを追加・入出力モードでオープンします。ファイルが
ない場合は新たにファイルを作ります
テキストファイルとしてオープンされた場合、入力時には'\r'は読み飛ばさ
れ、'\x1A'に出合うとファイルの終わりと見なします。また出力時には'\n'
の前に'\r'が挿入されます。
バイナリファイルとしてオープンされた場合には、入力時も出力時もいっさ
い変換はおこなわれません。
入力モードでは読み込みだけ、出力モードでは書き込みだけ、入出力モード
では読み書きの両方が許されます。
モード"a", "ab", "a+", "a+b"でオープンした場合には、書き込みの直前に
必ず EOFにシークします。したがって、このモードではデータの追加のみが
可能で、元のデータをオーバーライトすることはできません。
【リターン値】
成功するとFILE型へのポインタ(ファイルポインタ)を返します。失敗すると
値NULLを返します。
【可搬性】
fopen()
ANSI, UNIX, DOS窓
fdopen()
UNIX, DOS窓
【参照】
freopen(3), fclose(3), open(3), creat(3)
【copyright (c) 安江正樹@東海大学理学部物理学科】