総合手引 | セクション 3 | English | Deutsch | オプション |
#include <stdio.h>FILE *stdin;
ストリームはファイルを 開く ことによって、外部ファイル (物理的なデバイスのときもあります) に 関連づけられます。 それによって新しいファイルが作成される場合もあります。 存在するファイルを作成しようとすると、 そのファイルの以前の内容は破棄されます。 ファイルが位置指定要求 (端末ではなく、ディスクファイルというような) を サポートする場合は、そのファイルが追加モードで開かれているのでない限り、 ストリームに関連づけられた ファイル位置指示子 はファイルの先頭 (バイト 0) を指します。 追加モードを使った場合は、位置指示子はファイルの最後を指します。 位置指示子は以降の読み取り、書込み、位置指定の要求によって取り扱われます。 すべての入力はあたかもキャラクタが fgetc(3) 関数の連続的な呼び出しによって読み取られたかのようにして行われ、すべての 出力はすべてのキャラクタが fputc(3) 関数の連続的な呼び出しによって 書込まれたかのようにして行われます。
ファイルは、そのファイルを 閉じる ことによってストリームとの関連づけが解除されます。 出力ストリームは、ファイルとの関連づけが解除される前にフラッシュされます (書込まれなかったバッファの内容はホスト環境に送られます)。 FILE オブジェクトへのポインタの値は、ファイルを閉じた後は 不定 (ゴミ) になります。
同じプログラムまたは別のプログラムの実行から ファイルを再度オープンしてもよく、 (ファイルの開始位置に再度位置づけできる場合は) 元のファイルの内容を再利用または変更できます。 main 関数が呼び出し元に返るか、または exit(3) 関数が呼び出された場合には、開いている全てのファイルは閉じられます (従って、すべての出力ストリームはフラッシュされます)。 それ以外の方法でプログラムを終了したときは、 ファイルが適切に閉じられない可能性があるため、 バッファリングされた出力が失われることがあります。 特に、 _exit(2) は stdio ファイルをフラッシュしません。シグナルによる exit も同様です。 abort(3) は POSIX の要請に従いバッファをフラッシュしますが、 以前の実装ではこれを行っていません。
この実装では、 "テキスト" と "バイナリ" のストリームを区別しません。 実際にはすべてのストリームはバイナリです。 いかなるストリームにも、 変換が行われたり余分のパディングが現れたりすることはありません。
プログラムの開始時には、次の 3 つのストリームが 事前に定義され、それらを明示的に開く必要はありません。
stdio ライブラリはライブラリ libc の一部であり、 ルーチンは C コンパイラによって必要に応じて自動的にロードされます。 以下のマニュアルの 書式 の節では、どのインクルードファイルが使用されるか、 関数に対するコンパイラの宣言がどのようになっているか、 どの外部変数が関係しているかを示します。
以下のものはマクロとして定義されています。これらの名称は、現在の定義を #undef を使って削除してからでないと再使用することはできません: BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_cuserid, L_ctermid, L_tmpnam, NULL, P_tmpdir, SEEK_CUR, SEEK_END, SEEK_SET, TMP_MAX, clearerr, feof, ferror, fileno, fropen, fwopen, getc, getchar, putc, putchar, stderr, stdin, stdout, vfscanf 。 マクロ関数 clearerr(), feof(), ferror(), fileno(), getc(), getchar(), putc(), および putchar() には関数バージョンが存在し、 マクロ定義が明示的に削除された場合にはそれが使われます。
関数 | 説明 |
asprintf | 書式付き出力変換 |
clearerr | ストリームの状態のチェックとリセット |
fclose | ストリームを閉じる |
fdopen | ストリームを開く関数 |
feof | ストリームの状態のチェックとリセット |
ferror | ストリームの状態のチェックとリセット |
fflush | ストリームのフラッシュ |
fgetc | 入力ストリームから次のキャラクタまたはワードを取得 |
fgetln | ストリームから 1 行を取得 |
fgetpos | ストリームの位置指定 |
fgets | ストリームから 1 行を取得 |
fileno | ストリームの状態のチェックとリセット |
fopen | ストリームを開く関数 |
fprintf | 書式付き出力変換 |
fpurge | ストリームのフラッシュ |
fputc | 1 キャラクタまたは 1 ワードをストリームに出力 |
fputs | 1 行をストリームに出力 |
fread | バイナリストリームの入力/出力 |
freopen | ストリームを開く関数 |
fropen | ストリームを開く |
fscanf | 書式付き入力変換 |
fseek | ストリームの位置指定 |
fsetpos | ストリームの位置指定 |
ftell | ストリームの位置指定 |
funopen | ストリームを開く |
fwopen | ストリームを開く |
fwrite | バイナリストリームの入力/出力 |
getc | 入力ストリームから次のキャラクタまたはワードを取得 |
getchar | 入力ストリームから次のキャラクタまたはワードを取得 |
gets | ストリームから 1 行を取得 |
getw | 入力ストリームから次のキャラクタまたはワードを取得 |
mkdtemp | ユニークなテンポラリファイルを作成 |
mkstemp | ユニークなテンポラリファイルを作成 |
mktemp | ユニークなテンポラリファイルを作成 |
perror | システムエラーメッセージ |
printf | 書式付き出力変換 |
putc | 1 キャラクタまたはワードをストリームに出力 |
putchar | 1 キャラクタまたはワードをストリームに出力 |
puts | 1 行をストリームに出力 |
putw | 1 キャラクタまたはワードをストリームに出力 |
remove | ディレクトリエントリの削除 |
rewind | ストリームの位置指定 |
scanf | 書式付き入力変換 |
setbuf | ストリームのバッファリング操作 |
setbuffer | ストリームのバッファリング操作 |
setlinebuf | ストリームのバッファリング操作 |
setvbuf | ストリームのバッファリング操作 |
snprintf | 書式付き出力変換 |
sprintf | 書式付き出力変換 |
sscanf | 書式付き入力変換 |
strerror | システムエラーメッセージ |
sys_errlist | システムエラーメッセージ |
sys_nerr | システムエラーメッセージ |
tempnam | テンポラリファイルルーチン |
tmpfile | テンポラリファイルルーチン |
tmpnam | テンポラリファイルルーチン |
ungetc | 入力ストリームに文字を返す |
vasprintf | 書式付き出力変換 |
vfprintf | 書式付き出力変換 |
vfscanf | 書式付き入力変換 |
vprintf | 書式付き出力変換 |
vscanf | 書式付き入力変換 |
vsnprintf | 書式付き出力変換 |
vsprintf | 書式付き出力変換 |
vsscanf | 書式付き入力変換 |
STDIO (3) | April 19, 1994 |
総合手引 | セクション 3 | English | Deutsch | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | The wonderful thing about standards is that there are so many of them to choose from. | ” |
— Grace Murray Hopper |