FOPEN
Section: C Library Functions (3)
索引
jman
BSD mandoc
索引
名称
fopen
fdopen
freopen
- ストリームをオープンする関数
索引
ライブラリ
Lb libc
索引
書式
In stdio.h
Ft FILE *
Fn fopen const char *path const char *mode
Ft FILE *
Fn fdopen int fildes const char *mode
Ft FILE *
Fn freopen const char *path const char *mode FILE *stream
索引
解説
Fn fopen
関数は、
Fa path
が指す文字列の名前を持つファイルをオープンし、
それにストリームを関連付けます。
引数
Fa mode
は、以下のシーケンスの
1 つで始まる文字列を指します
(このシーケンスには、別のキャラクタが続いても構いません)。
- ``r
''
-
テキストファイルを読込み用にオープンします。
ストリームは、ファイルの最初に位置付けられます。
- ``r+
''
-
読込み用と書込み用にオープンします。
ストリームは、ファイルの最初に位置付けられます。
- ``w
''
-
書込み用に、ファイルを長さ 0 に切りつめるか、テキストファイルを作成します。
ストリームは、ファイルの最初に位置付けられます。
- ``w+
''
-
読込み用と書込み用にオープンします。
ファイルが存在しない場合はそのファイルが作成され、
存在する場合は切りつめられます。
ストリームは、ファイルの最初に位置付けられます。
- ``a
''
-
書込み用にオープンします。
ファイルが存在しない場合はそのファイルが作成されます。
ストリームは、ファイルの最後に位置付けられます。
それに続くファイルへの書き込みは、
fseek(3)
のような操作の介在に関わりなく、
常にファイルの現時点での最後へと行われます。
- ``a+
''
-
読込み用と書込み用にオープンします。
ファイルが存在しない場合はそのファイルが作成されます。
ストリームは、ファイルの最後に位置付けられます。
それに続くファイルへの書き込みは、
fseek(3)
のような操作の介在に関わりなく、
常にファイルの現時点での最後へと行われます。
Fa mode
文字列には、3 番目の文字として、
または上で説明した 2 文字からなる文字列の間に指定する文字として、
文字 ``b'' を含めることができます。
これは
St -isoC
との互換性を保つためのもので、効果はありません。
``b'' は無視されます。
作成されたファイルのモードは、
\*q S_IRUSR
|
S_IWUSR
|
S_IRGRP
|
S_IWGRP
|
S_IROTH
|
S_IWOTH \*q
(0666
)
がプロセスの umask 値 (
umask(2)
参照) で修正されたものになります。
読み書きストリームでは、読込みと書込みをどのような順序でも
混ぜることができ、前バージョンの
stdio
のように、それらの間にシーク操作は必要ありません。
しかしながら、これは他のシステムへの移植性がありません。
というのは、
ANSI C
は、入力オペレーションがファイルの終了に達していない場合、
ファイル位置付け関数が出力と入力の間に
介在することを要求しているからです。
Fn fdopen
関数は、既存のファイル記述子
Fa fildes
にストリームを関連付けます。
ストリームの
Fa mode
には、ファイル記述子のモードとの互換性が必要です。
fclose(3)
によってストリームが閉じられた時には、
Fa fildes
も閉じられます。
Fn freopen
関数は、
Fa path
が指す文字列の名前が付いたファイルを開き、
Fa stream
が指すストリームを関連付けます。
元のストリームが存在する場合、それは閉じられます。
Fa mode
引数は、
Fn fopen
関数と同じです。
Fn freopen
の主な使用目的は、標準テキストストリーム
( stderr,
stdin
stdout
に関連付けられたファイルを切替えることです。
索引
戻り値
呼び出しが成功すると、
Fn fopen,
Fn fdopen,
Fn freopen
は
FILE
ポインタを返します。
問題がある場合は
NULL
を返し、そのエラーを示す値をグローバル変数
errno
に設定します。
索引
エラー
- Bq Er EINVAL
-
Fn fopen ,
Fn fdopen ,
Fn freopen
の
Fa mode
が正しくありません。
Fn fopen ,
Fn fdopen ,
Fn freopen
関数は、エラーが発生すると、ルーチン
malloc(3)
で規定されたエラーを
errno
に設定することもあります。
Fn fopen
関数は、エラーが発生すると、ルーチン
open(2)
で規定されたエラーを
errno
に設定することもあります。
Fn fdopen
関数は、エラーが発生すると、ルーチン
fcntl(2)
で規定されたエラーを
errno
に設定することもあります。
Fn freopen
関数は、エラーが発生すると、ルーチン
open(2),
fclose(3),
fflush(3)
で規定されたエラーを
errno
に設定することもあります。
索引
関連項目
open(2),
fclose(3),
fileno(3),
fseek(3),
funopen(3)
索引
規格
Fn fopen
関数と
Fn freopen
関数は、
St -isoC
に適合しています。
Fn fdopen
関数は、
St -p1003.1-88
に適合しています。
索引
Index
- 名称
-
- ライブラリ
-
- 書式
-
- 解説
-
- 戻り値
-
- エラー
-
- 関連項目
-
- 規格
-
Time: 07:06:50 GMT, January 12, 2009