| 日本−日本語 |
|
|
|
![]() |
HP-UX リファレンス: セクション 3 : ライブラリ (N~Z) > pputc(3S)HP-UX 11i Version 2: September 2004 |
|
名称putc(), putchar(), fputc(), putw() ― ストリーム上に文字またはワードを出力 構文#include <stdio.h> int putc(int c, FILE *stream); int putchar(int c); int fputc(int c, FILE *stream); int putw(int w, FILE *stream); int putc_unlocked(int c, FILE *stream); int putchar_unlocked(int c); 説明
標準エラーストリーム stderr を除く出力ストリームは、デフォルトで、ファイルに出力される場合にはバッファー化され、ターミナルに出力される場合にはラインバッファー化されます。 標準エラー出力ストリーム stderr は、デフォルトでバッファー化されませんが、 freopen() fopen(3S) 参照) を使用すると、バッファー化もしくはラインバッファー化されます。 setbuf() もしくは setvbuf() setbuf(3S) 参照) を使用すると、ストリームのバッファリング方針を変更できます。 putc_unlocked() と putchar_unlocked() は、ストリームに文字を出力します。 アプリケーション使用法putc(), fputc(), putchar(), または putw() がストリームに適用された後は、ストリームはバイト指向になります (orientation(5) を参照)。 戻り値正常終了すると、 putc(), putc_unlocked(), fputc(), putchar(), putchar_unlocked() は、それぞれの書き出した値を返します。 失敗すると、定数 EOF を返し、ストリームにエラーを示し、エラーを示す値を errno に設定します。 正常終了すると、 putw() と putw_unlocked() は 0 を返します。 失敗すると、0 でない値を返し、ストリームに対してエラーを示し、エラーを示す値が errno に設定されます。 エラーputc(), putc_unlocked(), putchar(), putchar_unlocked(), fputc(), putw(), putw_unlocked() は、 stream がバッファー化されていないか、 stream バッファーが掃き出される必要がある場合に失敗し、その下の write() コマンドを実行します。
下の write() 関数によって、その他の errno 値が設定されることもあります write(2) 参照)。 警告putc() および putchar() ルーチンは、いずれもライブラリ関数とマクロの両方として実現されたものです。 マクロ版は、デフォルトで使用されており、 <stdio.h> で定義されています。 ライブラリ関数を取得するには、 #undef を使ってマクロの定義を取り除きます。あるいは、 ANSI-C モードでコンパイルを行う場合は、関数名をかっこで囲むか、関数アドレスを使ってください。 以下の例で、これらの方法を示します。 #include <stdio.h> 標準 I/O ルーチンを使っているのに、標準入力からの読み込みには read() を直接使っているようなプログラムでは、ラインバッファリングが混乱を招いたり、誤動作の原因になることがあります。 行の一部を出力ターミナルに出力した後で大量の計算を行う場合、計算を始める前に標準出力に対して fflush() fclose(3S) 参照) 処理を行う必要があります。 putc() のマクロ版は、副作用によって、引き数 stream を正しく処理できません。 特に以下のコマンドは、期待したとおりには実行されないことがあります。 putc(c, *f++); 関数版の putc() か fputc() を使ってください。 機種によってワードの長さやバイト順序に違いがあるため、 putw() を使って作成したファイルは、機種に依存したものとなります。したがって、違うプロセッサ上で getw() を使っても、ファイルが読めないことがあります。 putw_unlocked() インタフェースは廃止され、現在では既存の DCE アプリケーションとの互換性を保つためにだけサポートされています。新しいマルチスレッドアプリケーションでは、 putc(), putchar() および putw() を使用してください。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||