日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、全翻訳済み)
6.4-STABLE-K, 7.2-STABLE-K, 8.0-STABLE-K は現在、 作成中で日々更新されています。 最新の snapshots を元に作成しています。
STDIO(3) FreeBSD Library Functions Manual STDIO(3)
名称
stdio - 標準 I/O ライブラリ関数
書式
#include <stdio.h>
FILE *stdin;
FILE *stdout;
FILE *stderr;
解説
標準 I/O ライブラリは、簡単で効率的なバッファされたストリーム I/O インタ
フェースを提供します。入力と出力は論理的データストリームにマップされ、物
理的な I/O 特性値は隠されます。関数およびマクロは下に示す通りですが、それ
ぞれに関する個別のマニュアルページにさらに詳しい説明があります。
ファイルを 開くと外部ファイル (物理的デバイスである場合もある) にはストリ
ームが結合されますが、その際には新規ファイルが作成されることもあります。
既存のファイルを作成すると、そのファイルの以前の内容は廃棄されます。ファ
イルが位置決定要求 (端末ではなく、ディスクファイルというような) をサポー
トする場合は、そのファイルをアペンドモードで開かない限り、ストリームに結
合された ファイル位置指示子がファイルの先頭 (バイト 0) に置かれます。アペ
ンドモードを使った場合は、位置指示子はファイルの最後に置かれます。位置指
示子は以降の読み取り、書込み、位置決定の要求によって維持されます。すべて
の入力はあたかもキャラクタが fgetc(3) 関数の連続的な呼び出しによって読み
取られたかのようにして行われ、すべての出力はすべてのキャラクタが fputc(3)
関数の連続的な呼び出しによって書込まれたかのようにして行われます。
ファイルは、そのファイルを 閉じることによってストリームとの結合が解除され
ます。出力ストリームは、ファイルとの結合が解除される前にフラッシュされま
す (書込まれなかったバッファ内容はホスト環境に送られます)。 FILE オブジェ
クトへのポインタの値は、ファイルを閉じた後は不定 (くず) になります。
ファイルは、同じプログラムまたは別のプログラムを実行することにより後で再
び開くこともでき、その内容は再生利用されるかまたは修正されます (スタート
時にファイルが再度配置できる場合)。メインの関数が元の呼び出し元に返るか、
または exit(3) 関数が呼び出された場合は、プログラムを終了する前にすべての
開いたファイルを閉じます (従って、すべての出力ストリームはフラッシュされ
ます)。プログラムを終了するその他の方法ではファイルを適切に閉じない場合が
あり、従ってバッファされた出力が失われる場合があります。特に、 _exit(2)
は stdio ファイルをフラッシュしません。信号による exit も同様です。
abort(3) は POSIX が要求するようにバッファをフラッシュしますが、以前の実
装ではこれを行っていません。
本実装では、 ``テキスト'' と ``バイナリ'' のストリームを区別しません。そ
の結果、すべてのストリームはバイナリになります。翻訳は行われず、すべての
ストリームには余分のパディングは現れません。
プログラムのスタートアップ時には、次の 3 つのストリームが事前定義され、そ
れらを明示的に開く必要はありません。
+o standard input (通常入力読み取り用)
+o standard output (通常出力書込み用)
+o standard error (診断出力書込み用)
これらのストリームは、 stdin、 stdout、そして stderr と略記されます。初期
には、標準エラーストリームはバッファされていません。標準の入力および出力
ストリームは、そのストリームが isatty(3) 関数により決定されるような形でイ
ンタラクティブデバイスまたは ``端末'' デバイスを参照しない限りにおいて、
完全にバッファされます。実際に、端末デバイスを参照する新規に開かれた すべ
てのストリームは、デフォルトでラインにバッファされ、このようなストリーム
への未決の出力は、入力ストリームが読み込まれたときは常に自動的に書込まれ
ます。これは、 ``真の読み込み'' に対してのみ当てはまることに注意してくだ
さい。読み込み要求がバッファされた既存のデータで間に合う場合は、自動的な
フラッシュは起きません。この場合、または出力端末にラインの一部をプリント
した後で大量の計算が行われる場合は、出力が出てくるように先に進んで計算を
続ける前に、標準出力を fflush(3) で処理する必要があります。その代わりに、
これらのデフォルトを setvbuf(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() には関数バージョンが存在し、
マクロ定義が明示的に削除された場合にはそれが使われます。
参照
close(2), open(2), read(2), write(2)
バグ
標準のバッファされた関数は、他のライブラリおよびシステム関数のあるもの、
特に vfork(2) とはうまくインタラクトできません。
規格
stdio ライブラリは、 ISO 9899: 1990 (``ISO C'') に準拠しています。
関数一覧
関数 説明
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 入力フォーマット変換
4th Berkeley Distribution April 19, 1994 3