STDIO(3S) — NEWS-OS Programmer’s Manual
名称
stdio − 標準入出力パッケージ
形式
#include <stdio.h>
FILE ∗stdin;
FILE ∗stdout;
FILE ∗stderr;
解説
3Sで示されるこれらの関数は、 ユーザレベルのバッファリング方式を 構成します。 組み込みマクロの getc 及び putc(3S) は、 文字を 高速で処理します。 それより上位レベルのルーチン gets、 fgets、 scanf、 fscanf、 fread、 puts、 fputs、 printf、 fprintf、 fwrite はすべて、 getc 及び putc を 使用します。 これらは、 自由に混在して使うことができます。
バッファリングと対応づけられるファイルはストリーム (stream) と呼ばれ、 定義された型 FILE を 指すポインタとして宣言されます。 fopen(3S) は、 ストリーム用の特定の記述用データを 作成し、 それ以降の全ての処理に用いられる データへのポインタを 返します。 通常、 インクルードファイルで宣言され、 標準オープンファイルと対応づけられる定数ポインタを 持つ、 3つのオープンされているストリームがあります。
stdin 標準入力ファイル
stdout 標準出力ファイル
stderr 標準エラーファイル
定数‘ポインタ’ NULL (0)は、 ストリームのないことを 示します。
ストリームを 扱う整数関数がエンドオブファイルの場合、 あるいはエラーを 生じた場合、 整数定数 EOF (−1)を 返します。
標準入出力パッケージを 使用するルーチンはどれも、 対応するマクロ定義がしてあるヘッダファイル <stdio.h> を インクルードしなければなりません。 3S の節内で示される関数及び定数は、 インクルードファイル中で宣言され、 これ以降は宣言する必要がありません。 定数及び マクロとして実現されている関数、 getc、 getchar、 putc、 putchar、 feof、 ferror、 fileno に関して、 名前の再宣言は 危険です。
関連事項
open(2), close(2), read(2), write(2), fread(3S), fseek(3S), f∗(3S)
診断
FILE ポインタが fopen で初期設定されなかった場合、 入力(出力)が出力(入力)ストリーム上でなされた場合、 あるいは、 FILE ポインタが不良のデータ、 またはその他不明瞭な FILE データを 示す場合は、 一様に値 EOF が返されます。
効率を 上げるために、 この標準ライブラリのインプリメンテーションは、 デフォルトで端末へのラインバッファ出力を 行うように変更されています。 さらに、 標準入力からの読み込み read(2) が必要なときはいつでも、 出力を フラッシュして、 これを トランスペアレントに実行するようにしてあります。 通常、 これはいつもトランスペアレントですが、 標準 I/O ルーチンを使用するが、 標準入力を読むために read(2) を 使用するプログラムでは、 混乱や悪影響を起こす可能性があります。
出力用端末上に行の一部を出力しただけで大量の計算をするような場合では、 出力をうまく出すために、 他の動作をする前に標準出力を fflush(3S) する必要があります。
バグ
標準 I/O 関数は、 他のライブラリやシステム関数、 特に vfork と abort とは、 うまく作用しません。
関数リスト
名前表示ページ解説
clearerrferror.3sストリームステータスの照会
fclosefclose.3sストリームのクローズまたはフラッシュ
fdopenfopen.3sストリームのオープン
feofferror.3sストリームステータスの照会
ferrorferror.3sストリームステータスの照会
fflushfclose.3sストリームのクローズまたはフラッシュ
fgetcgetc.3sストリームからの文字またはワードの取り出し
fgetsgets.3sストリームからの文字列の取り出し
filenoferror.3sストリームステータスの照会
fopenfopen.3sストリームのオープン
fprintfprintf.3s書式付き出力の変換
fputcputc.3sストリームへの文字またはワードの出力
fputsputs.3sストリームへの文字列の出力
freadfread.3sバイナリデータのバッファード入出力
freopenfopen.3sストリームのオープン
fscanfscanf.3s書式付き入力の変換
fseekfseek.3sストリームの再位置付け
ftellfseek.3sストリームの再位置付け
fwritefread.3sバイナリデータのバッファード入出力
getcgetc.3sストリームからの文字またはワードの取り出し
getchargetc.3sストリームからの文字またはワードの取り出し
getsgets.3sストリームからの文字列の取り出し
getwgetc.3sストリームからの文字またはワードの取り出し
printfprintf.3s書式付き出力の変換
putcputc.3sストリームへの文字またはワードの出力
putcharputc.3sストリームへの文字またはワードの出力
putsputs.3sストリームへの文字列の出力
putwputw.3sストリームへの文字またはワードの出力
rewindfseek.3sストリームの再位置付け
scanfscanf.3s書式付き入力の変換
setbufsetbuf.3sストリームへのバッファリングの割り当て
setbuffersetbuf.3sストリームへのバッファリングの割り当て
setlinebufsetbuf.3sストリームへのバッファリングの割り当て
sprintfprintf.3s書式付き出力の変換
sscanfscanf.3s書式付き入力の変換
ungetcungetc.3s入力ストリームへの文字の書き戻し
NEWS-OSRelease 4.2.1R