名前 | 形式 | 機能説明 | 戻り値 | エラー | 使用法 | 属性 | 関連項目
#include <stdio.h> #include <wchar.h>wint_t fputwc(wchar_t wc, FILE*stream);
#include <wchar.h>wint_t putwchar(wchar_t wc);
fputwc() 関数は、ワイド文字コード wc に対応する文字を、stream が指す出力ストリーム中に書き出します。書き出す位置は、出力ストリーム用のファイルポジション表示 (定義されていれば) が指す位置です。出力後、ファイルポジション表示の値を進めます。ファイルが位置指定要求をサポートしていない場合、またはストリームが追加モードでオープンされていた場合には、文字は出力ストリームに追加されます。書き込み中にエラーが発生すると、出力ファイルのシフト状態は未定義のままになります。
ファイル中の st_ctime と st_mtime の両フィールドは、fputwc() が正常終了してから、同じストリームに対する次の fflush(3C) または fclose(3C) の呼び出しが正常終了するまで、もしくは exit(2) または abort(3C) が呼び出されるまでの間に更新されるようマークされます。
putwc() 関数は、マクロとして実装される点を除いては、fputwc() 関数と同じです。
putwchar(wc) の呼び出しは、putwc(wc, stdout) と同じです。putwchar() ルーチンはマクロとして実装されます。
正常終了時、fputwc()、putwc()、および putwchar() は wc を返します。正常終了しない場合は WEOF を返します。このとき、ストリームのエラー表示がセットされ、errno はエラーを示す値に設定されます。
ストリームが蓄積されていないか、あるいはストリームのバッファー中のデータを書き出す必要があるとき、fputwc()、putwc()、および putwchar() 関数は以下の条件で異常終了します。
stream に対応するファイル記述子に O_NONBLOCK フラグが設定されていて、プロセスの動作が書き込みで待たされる可能性がある
stream に対応するファイル記述子が、書き込み用にオープンされた正しいものでない。または、ファイルは通常ファイルで、対応する stream に関連するオフセット最大値、またはそれ以上で作成しようとした
シグナルを受け取り、書き込みが終了した。データは転送されていない
物理 I/O エラーが発生した。または、プロセスがバックグラウンドプロセスのグループで、そのグループが制御端末に書き込もうとしていて、TOSTOP が設定されており、プロセスが SIGTTOU
を無視もブロックもせず、さらにプロセスグループの親がなくなっている
ファイルが存在するデバイス上に、空き領域がない
プロセスによる読み込み用にオープンされていないパイプまたは FIFO へ書き込もうとした。この場合、SIGPIPE
シグナルもプロセスへ送られる
fputwc()、putwc()、および putwchar() 関数は以下の条件で異常終了します。
使用可能な記憶領域が十分でない
存在しないデバイスに対して要求が出された、またはデバイスの能力を超えた要求が出された
ワイド文字コード wc が、正当な文字に対応していない
putwc() および putwchar() のマクロには、関数が存在します。関数のフォームを得るには、マクロ名を未定義にする必要があります (たとえば #undef putc)。
マクロのフォームを使用した場合、putwc() は stream 引数を 2 回以上、評価します。特に putwc (wc, *f++) は正しく動作しません。stream 引数に影響するような評価をする場合は、代わりに fputwc() 関数を使用するようにしてください。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
MT レベル | MT-Safe |