printf(1) FreeBSD 一般コマンドマニュアル

printf

前のページ 上に戻る 次のページ

printf




解説

     printf は第一引数より後の引数をフォーマットに合わせて出力します。 format
     は 3 種類のオブジェクトを含む文字列です。一つは通常の文字列で、単純に標準
     出力にコピーされます。一つはエスケープシーケンスで、変換されてから標準出
     力にコピーされます。もう一つはフォーマット記述で、これらはそれぞれ、後に
     続く arguments を表示します。

     第一引数より後の arguments は対応するフォーマットが cs の場合は文字列
     として扱われ、それ以外は以下のような拡張部分と合わせて C の定数として評価
     されます。

           o   先頭に ``+'' や ``-'' の符号をつけることができます。
           o   もし先頭がシングルクォートやダブルクォートで始まっているか、数
               字、プラス/マイナス記号で始まっているのでなければ、その値は次の
               文字の ASCII コードになります。

     フォーマット文字列は arguments を変換するために何度も再利用されます。余分
     なフォーマット記述は 0 やヌル文字列に評価されます。

     キャラクタエスケープシーケンスは ANSI C 規格 X3J11 で立案された定義で、
     バックスラッシュによる表記です。文字キャラクタとその意味は以下のようにな
     ります。

           \a      <ベル> キャラクタを書きます。
           \b      <バックスペース> キャラクタを書きます。
           \f      <フォームフィード> キャラクタを書きます。
           \n      <改行> キャラクタを書きます。
           \r      <復帰> キャラクタを書きます。
           \t      <タブ> キャラクタを書きます。
           \v      <垂直タブ> キャラクタを書きます。
           \'      <シングルクォート> キャラクタを書きます。
           \\      <バックスラッシュ>キャラクタを書きます。
           \num    1 から 3 桁の 8 進数 num で表される ASCII コードの 8 ビット
                   文字を書きます。

     各フォーマットの指定はパーセント文字(``%'')から始まります。フォーマットの
     他の部分は、以下の順番で続きます:

     以下のフラグが 0 個以上つきます:

             #       `#' キャラクタは数値を ``別形式'' で表示させるという指定
                     です。 c, d, s フォーマットではこのオプションは無効です。
                     o フォーマットでは出力文字列の先頭に 0 をつけるため、その
                     値の精度が上がります。 x (X) フォーマットでは、0 以外の値
                     なら出力される文字列の先頭に 0x (0X) がつきます。 e, E,
                     f, g, G のフォーマットでは、たとえ小数点以下の値がなくて
                     も常に小数点がつきます (通常のフォーマットでは、小数点以
                     下の値がある時のみ結果に小数点が含まれます)。 gG の
                     フォーマットでは、結果の終わりに付く 0 は通常のフォーマッ
                     トと違って省略されません。

             field width; フィールド幅を指定するためにオプションとしてつける数
             値です。出力する文字列がこのフィールド幅よりも短い場合、フィール
             ド幅を埋めるように左側が(左詰めの指示があれば、右側が)空白でパ
             ディングされます。 (先頭につく 0 はフラグですが、埋め込まれた 0
             はフィールド幅の一部であることに注意)

     精度:   オプションでつけるピリオド `.', には、 精度を表わす数のオプション
             が続きます。この数は ef フォーマットの場合に小数点以下の値を
             表示する桁数を指定します。 e, f 以外では、文字列から表示される文
             字の最大数になります。もし精度を表す数がなければ、精度は 0 とされ
             ます。

     Format:
             フォーマットの型を表す文字です( diouxXfwEgGbcs のうちのいずれ
             か)。

     フィールド幅や精度は数字の代りに `*' も使えます。この場合、フィールド幅や
     精度は argument で与えます。

     フォーマットキャラクタとその意味は以下のようになります:

     diouXx      argument はそれぞれ符号つき 10 進数(d または i)、符号なし 8
                 進数(o)、符号なし 10 進数(u)、符号なし 16 進数(X または x)で
                 表示されます。

     f           argument が `[-]ddd.ddd' のスタイルで表示され、引数の精度で指
                 定した数だけ小数点以下の d が続きます。精度の指定がなければ 6
                 文字になります。もし精度が明示的に 0 と指定された場合は小数点
                 とそれ以下の値は表示されません。

     eE          argument が `[-d.ddd+-dd]' のように、小数点の前に数字が一つ
                 で、後には引数の精度で指定した数だけ数字が続きます。精度の指
                 定がなければ 6 文字になります。 `E' フォーマットが使われま
                 す。

     gG          argument が、最小の長さで最大の精度が得られるように、 f また
                 は、 e (E) で表示されます。

     c           argument の最初の文字が表示されます。

     s           argument が終わりまでか、または精度で指定された文字数だけ表示
                 されます。精度が 0 かもしくは指定されていない場合は文字列全て
                 が表示されます。

     %           `%' を表示します。引数はつきません。

     存在しないフィールド、もしくは小さなフィールド幅指定でフィールドが切り詰
     められることはありません。指定されたフィールドが実際の幅を越えた時は、パ
     ディングが起こります。

     シェルによっては、本ユーティリティと似たまたは同じ、組み込みの printf コ
     マンドを提供しているものがあります。 builtin(1) マニュアルページを参照し
     が失われます。

     ANSI 16 進文字定数はわざと用意されていません。

     エスケープシーケンス \000 が文字列終端子です。 format 中に存在すると、
     format は \000 文字のところで切り捨てられます。

FreeBSD 4.4                      June 6, 1993                      FreeBSD 4.4

ABELNET VPSサービス