名称
ungetc() ― 文字を入力ストリームに戻す
構文
#include <stdio.h>
int ungetc(int c, FILE *stream);
廃止インタフェース
int ungetc_unlocked(int c, FILE *stream);
説明
ungetc() は、文字 c を (符号なし char 型に変換して) 入力ストリーム stream に対応するバッファーに挿入します。 この文字 c は、次にこの stream に対して getc() を呼び出したときに返されます getc(3S) 参照)。 この stream に対して、ファイル中の位置を変更する関数 (fseek(), fsetpos(),
または rewind()) が呼び出され正常終了すると、挿入された文字は消去されます。
ungetc() は、入力ストリーム stream に対応するバッファーにのみ影響します。 stream に対応するファイルの内容には影響しません。
確実に戻すことができるのは 1 文字です。
c が EOF であれば、 ungetc() はバッファーに対しては何もせずに、EOF
を返します。
廃止インタフェース
ungetc_unlocked() は入力ストリームに文字を戻します。
アプリケーション使用法
ungetc() がストリームに適用された後は、ストリームはバイト指向になります (orientation(5) を参照)。
戻り値
ungetc() および ungetc_unlocked() は、正常終了すると c を返し、このストリームのエンドオブファイルフラグをクリアします。
文字をバッファーに挿入できない場合には、 ungetc() および ungetc_unlocked() は、EOF
を返します。
警告
ungetc_unlocked() インタフェースは廃止され、現在では既存の DCE アプリケーションとの互換性を保つためにだけサポートされています。新しいマルチスレッドアプリケーションでは、 ungetc() を使用してください。
標準準拠
ungetc(): AES, SVID2, SVID3, XPG2, XPG3,
XPG4, FIPS 151-2, POSIX.1, ANSI C