PRINTF(1) FreeBSD 一般コマンドマニュアル PRINTF(1)
名称
printf − フォーマット済み出力 |
書式
printf format [arguments ...] |
解説 |
printf ユーティリティは第一引数より後の引数をフォーマットに合わせて出力し ます。 format は 3 種類のオブジェクトを含む文字列です。一つは通常の文字列 で、単純に標準出力にコピーされます。一つはエスケープシーケンスで、変換さ れてから標準出力にコピーされます。もう一つはフォーマット記述で、これらは それぞれ、後に続く arguments を表示します。 第一引数より後の arguments は、対応するフォーマットが c, b, s のいずれか 場合は文字列として扱われ、それ以外は以下のような拡張部分と合わせて C の定 数として評価されます。 |
• 先頭に ‘‘+’’ や ‘‘-’’ の符号をつけることができます。
• もし先頭がシングルクォートやダブルクォートで始まっている場合、 その値は次の文字の ASCII コードになります。 フォーマット文字列は arguments を変換するために何度も再利用されます。余分 なフォーマット記述は 0 やヌル文字列に評価されます。 キャラクタエスケープシーケンスは ANSI X3.159-1989 (‘‘ANSI C’’) の定義を拡 張した、バックスラッシュによる表記です。キャラクタとその意味は以下のよう になります。 \a 各フォーマットの指定はパーセント文字 (‘‘%’’) から始まります。フォーマット の他の部分は、以下の順番で続きます: 以下のフラグが 0 個以上つきます: # − + ‘ ’ 0 フィールド幅: 精度: Format: フィールド幅や精度は数字の代りに ‘*’ も使えます。この場合、フィールド幅や 精度は argument で与えます。 フォーマットキャラクタとその意味は以下のようになります: diouXx fF eE gG aA c s b % 小数点文字は、プログラムのロケール (カテゴリ LC_NUMERIC) で定義されます。 存在しないフィールド、もしくは小さなフィールド幅指定でフィールドが切り詰 められることはありません。指定されたフィールドが実際の幅を越えた時は、パ ディングが起こります。 診断 |
ユーティリティ printf は、成功すると 0 で、エラーがあった場合は >0 で終了 します。 |
互換性
伝統的な BSD の動作である、数字で開始しない数値書式引数が、 ASCII コード の最初の文字に変換されるという動作は、サポートされません。 |
関連項目
規格
printf コマンドは、 IEEE Std 1003.2 (‘‘POSIX.2’’) 仕様互換と期待されま す。 |
歴史
printf は、 4.3BSD−Reno で追加され、標準ライブラリ関数 printf(3) に基いて います。 |
バグ
浮動小数点数は ASCII から浮動小数点数形式に変換されてまた戻るので、浮動小 数点数の精度が失われます。 ANSI 16 進文字定数はわざと用意されていません。 エスケープシーケンス \000 は文字列終端子です。 format 中に存在すると、 format は文字 \000 のところで切り捨てられます。 フォーマット文字列中のマルチバイト文字は認識されません (これは ‘%’ がマル チバイト文字の内側に出現する可能性がある場合に限られます)。 FreeBSD 10.0 July 3, 2004 FreeBSD 10.0 |