名前 | 形式 | 機能説明 | 戻り値 | エラー | 属性 | 関連項目
#include <stdio.h> #include <wchar.h>wint_t ungetwc(wint_t wc, FILE *stream);
ungetwc() 関数は、wc が指定するワイド文字コードに対応する文字を、stream が示す入力ストリームにプッシュバック (書き戻し) します。プッシュバックされた文字は、そのストリームに対するその後の読み込み処理で、プッシュ時とは逆の順序で返されます。途中で (stream が指すストリームを指定して) ファイルの位置を変える fseek(3C)、fsetpos(3C)、または rewind(3C) 関数を正しく呼び出すと、プッシュバックされた文字はすべて破棄されます。ストリームに対応した外部記憶域の内容は変わりません。
1 文字のプッシュバックは、確実に実行されます。ただし、同じストリームに対し ungetwc() を何度も呼び出すと、途中にファイル位置を変える操作を入れないと、プッシュバックが正しく行われないことがあります。
wc の値が WEOF マクロの値に等しいとき、プッシュバックは失敗します。入力ストリームの内容は変わりません。
ungetwc() が正しく呼び出されると、ストリーム用の EOF (ファイルの終り) 表示がクリアされます。プッシュバックされた文字がすべて読み込みまたは破棄された後、当該ストリームのファイルポジション表示の値は、プッシュバックが行われる前の値と同じになります。ungetwc() が正常に呼び出されるたびに、ファイルポジション表示の値は 1 (またはそれ以上) ずつマイナスされます。呼び出し時点で値が 0 だった場合、呼び出し後の値は予測できません。
正常終了時、ungetwc() はプッシュバックされた文字に対応するワイド文字コードを返します。正常終了以外の時は WEOF を返します。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
MT レベル | MT-Safe |