名称
puts(), fputs() ― ストリーム上に文字列を出力
構文
#include <stdio.h>
int puts(const char *s);
int fputs(const char *s, FILE *stream);
廃止インタフェース
int puts_unlocked(const char *s);
int fputs_unlocked(const char *s, FILE *stream);
説明
puts() は、 s で指された null で終わる文字列にニューライン文字を付け加えて、標準出力ストリーム stdout に書き込みます。
fputs() は、 s で指された null で終わる文字列を、指定した出力 stream に書き出します。ただし、ニューライン文字は付け加えません。
どちらの関数も、終りに null 文字は付け加えません。
廃止インタフェース
puts_unlocked() および fputs_unlocked() は、ストリームに文字列を出力します。
戻り値
正常終了すると、 これらのルーチンは、負でない数を返します。
失敗すると EOF を返し、ストリームにエラーを示し、エラーを示す値を errno に設定します。
エラー
これらのルーチンは、
stream がバッファー化されていない場合、または stream バッファーが掃き出される必要がある場合に失敗し、その下の write() コマンドを実行します。
| [EAGAIN] | | stream の下のファイル記述子に対して O_NONBLOCK フラグが立てられ、プロセスは
write 操作の間遅延されます。 |
| [EBADF] | | stream の下のファイル記述子が、書き込み用に開かれた、有効なファイル記述子ではないことを示します。 |
| [EFBIG] | | 書き込もうとしたファイルが、プロセスのファイルサイズ上限、もしくは最大ファイルサイズを超えていることを示します ulimit(2) 参照)。 |
| [EINTR] | | write() システムコールの最中にシグナルが発生したことを示します。 |
| [EIO] | | プロセスがバックグラウンド プロセスグループの中にある状態で、制御ターミナルへ書き出そうとしていることを示します。 TOSTOP が設定されますが、プロセスは SIGTTOU シグナルを無視も妨害もしてません。そのプロセスのプロセスグループは、親なしにされます。 |
| [ENOSPC] | | ファイルを格納しているデバイスに空きスペースがないことを示します。 |
| [EPIPE] | | 読み込み用に開かれていないパイプもしくは FIFO に対して、書き込もうとしていることを示します。 SIGPIPE シグナルがプロセスに送られます。 |
下の write() 関数によって、その他の errno 値が設定されることもあります write(2) 参照)。
警告
puts_unlocked() および fputs_unlocked() インタフェースは廃止され、現在では既存の DCE アプリケーションとの互換性を保つためにだけサポートされています。新しいマルチスレッドアプリケーションでは、 puts() および fputs() を使用してください。
注記
puts() および puts_unlocked() はニューライン文字を付け加えます。 fputs() および fputs_unlocked() はニューライン文字を付け加えません。
標準準拠
puts(): AES, SVID2, SVID3, XPG2, XPG3,
XPG4, FIPS 151-2, POSIX.1, ANSI C
fputs(): AES, SVID2, SVID3, XPG2, XPG3,
XPG4, FIPS 151-2, POSIX.1, ANSI C