fopen, fdopen - ファイルのオープン

【書式】

#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) 安江正樹@東海大学理学部物理学科】