aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man1/printf.1
blob: 458f30774cc2ade6cc30bae52720f5ed2cbde577 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
.\" Copyright (c) 1989, 1990, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" the Institute of Electrical and Electronics Engineers, Inc.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"	@(#)printf.1	8.1 (Berkeley) 6/6/93
.\" %FreeBSD: src/usr.bin/printf/printf.1,v 1.8.2.1 2000/12/19 16:22:25 ru Exp %
.\" jpman %Id: printf.1,v 1.2 1997/05/20 01:08:19 mutoh Stab %
.\"
.Dd June 6, 1993
.Dt PRINTF 1
.Os
.Sh 名称
.Nm printf
.Nd フォーマット済み出力
.Sh 書式
.Nm
.Ar format Op Ar arguments  ...
.Sh 解説
.Nm
は第一引数より後の引数をフォーマットに合わせて出力します。
.Ar format
は 3 種類のオブジェクトを含む文字列です。
一つは通常の文字列で、単純に標準出力にコピーされます。
一つはエスケープシーケンスで、変換されてから標準出力にコピーされます。
もう一つはフォーマット記述で、これらはそれぞれ、後に続く
.Ar arguments
を表示します。
.Pp
第一引数より後の
.Ar arguments
は対応するフォーマットが
.Cm c
か
.Cm s
の場合は文字列として扱われ、それ以外は以下のような拡張部分と
合わせて C の定数として評価されます。
.Pp
.Bl -bullet -offset indent -compact
.It
先頭に ``+'' や ``-'' の符号をつけることができます。
.It
もし先頭がシングルクォートやダブルクォートで始まっているか、数字、プラ
ス/マイナス記号で始まっているのでなければ、その値は次の文字の
.Tn ASCII
コードになります。
.El
.Pp
フォーマット文字列は
.Ar arguments
を変換するために何度も
再利用されます。余分なフォーマット記述は 0 やヌル文字列に
評価されます。
.Pp
キャラクタエスケープシーケンスは
.Tn ANSI C
規格
.Tn X3J11
で立案された定義で、バックスラッシュによる表記です。文字キャラクタとそ
の意味は以下のようになります。
.Pp
.Bl -tag -width Ds -offset indent -compact
.It Cm \ea
<ベル> キャラクタを書きます。
.It Cm \eb
<バックスペース> キャラクタを書きます。
.It Cm \ef
<フォームフィード> キャラクタを書きます。
.It Cm \en
<改行> キャラクタを書きます。
.It Cm \er
<復帰> キャラクタを書きます。
.It Cm \et
<タブ> キャラクタを書きます。
.It Cm \ev
<垂直タブ> キャラクタを書きます。
.It Cm \e\'
<シングルクォート> キャラクタを書きます。
.It Cm \e\e
<バックスラッシュ>キャラクタを書きます。
.It Cm \e Ns Ar num 
1 から 3 桁の 8 進数
.Ar num
で表される
.Tn ASCII
コードの 8 ビット文字を書きます。
.El
.Pp
各フォーマットの指定はパーセント文字(``%'')から始まります。
フォーマットの他の部分は、以下の順番で続きます:
.Bl -tag -width Ds
.It "以下のフラグが 0 個以上つきます:"
.Bl -tag -width Ds
.It Cm #
`#' キャラクタは数値を ``別形式'' で表示させるという指定です。
.Cm c ,
.Cm d ,
.Cm s
フォーマットではこのオプションは無効です。
.Cm o
フォーマットでは出力文字列の先頭に 0 をつけるため、
その値の精度が上がります。
.Cm x
.Pq Cm X
フォーマットでは、0 以外の値なら出力される文字列の先頭に
.Li 0x
.Pq Li 0X
がつきます。
.Cm e  ,
.Cm E ,
.Cm f  ,
.Cm g ,
.Cm G 
のフォーマットでは、たとえ小数点以下の値がなくても常に小数点がつきます
(通常のフォーマットでは、小数点以下の値がある時のみ結果に小数点が含ま
れます)。
.Cm g
と
.Cm G
のフォーマットでは、結果の終わりに付く 0 は通常のフォーマットと違って
省略されません。
.It Cm \&\-
指定したフィールド幅で
.Em 左詰め
で出力します。
.It Cm \&+
符号つきのフォーマットの時に、数字の前に常に符号がつくように
なります。
.It Sq \&\ \&
符号つきのフォーマットで正の値を表示する時に先頭に空白が一つ挿入されま
す。 `+' と空白の両方が指定された場合、`+' が空白に優先されます。
.It Cm \&0
`0' は空白でパディングする代りに `0' でパディングを行ないます。
`\-' と `0' の両方が指定された場合、`\-' が優先されます。
.El
.It "フィールド幅:"
.Em field width ;
.Em フィールド幅
を指定するためにオプションとしてつける数値です。
出力する文字列がこのフィールド幅よりも短い場合、フィールド幅を埋めるよ
うに左側が(左詰めの指示があれば、右側が)空白でパディングされます。
(先頭につく 0 はフラグですが、埋め込まれた 0 はフィールド幅の一部であ
ることに注意)
.It 精度:
オプションでつけるピリオド
.Sq Cm \&.\& ,
には、
.Em 精度
を表わす数のオプションが続きます。この数は
.Cm e
と
.Cm f
フォーマットの場合に小数点以下の値を表示する桁数を指定し
ます。
.Cm e ,
.Cm f
以外では、文字列から表示される文字の最大数になります。もし精度を表す数
がなければ、精度は 0 とされます。
.It Format:
フォーマットの型を表す文字です(
.Cm diouxXfwEgGbcs
のうちのいずれか)。
.El
.Pp
フィールド幅や精度は数字の代りに
.Sq Cm \&*
も使えます。この場合、フィールド幅や精度は
.Ar argument
で与えます。
.Pp
フォーマットキャラクタとその意味は以下のようになります:
.Bl -tag -width Fl
.It Cm diouXx
.Ar argument
はそれぞれ符号つき 10 進数(d または i)、符号なし 8 進数(o)、
符号なし 10 進数(u)、符号なし 16 進数(X または x)で表示されます。
.It Cm f
.Ar argument
が `[\-]ddd.ddd' のスタイルで表示され、引数の精度で指定した数だけ小数
点以下の d が続きます。精度の指定がなければ 6 文字になります。もし精度
が明示的に 0 と指定された場合は小数点とそれ以下の値は表示されません。
.It Cm eE
.Ar argument
が
.Sm off
.Sq Op - Ar d.ddd No \(+- Ar dd
.Sm on
のように、小数点の前に数字が一つで、後には引数の精度で指定した数だけ数
字が続きます。精度の指定がなければ 6 文字になります。
.Sq Cm \&E
フォーマットが使われます。
.It Cm gG
.Ar argument
が、最小の長さで最大の精度が得られるように、
.Cm f
または、
.Cm e
.Pq Cm E
で表示されます。
.It Cm c
.Ar argument
の最初の文字が表示されます。
.It Cm s
.Ar argument
が終わりまでか、または精度で指定された文字数だけ表示されます。
精度が 0 かもしくは指定されていない場合は文字列全てが表示されます。
.It Cm \&%
`%' を表示します。引数はつきません。
.El
.Pp
存在しないフィールド、もしくは小さなフィールド幅指定でフィールドが切り
詰められることはありません。指定されたフィールドが実際の幅を越えた時は、
パディングが起こります。
.Pp
シェルによっては、本ユーティリティと似たまたは同じ、組み込みの
.Nm
コマンドを提供しているものがあります。
.Xr builtin 1
マニュアルページを参照してください。
.Sh 戻り値
.Nm
は成功時には 0 を返し、失敗時には 1 を返します。
.Sh 関連項目
.Xr builtin 1 ,
.Xr csh 1 ,
.Xr printf 3 ,
.Xr sh 1
.Sh 歴史
.Nm
は、
.Bx 4.3 Reno
で追加され、標準ライブラリ関数
.Xr printf 3
に基いています。
.Sh バグ
浮動小数点数は
.Tn ASCII
から浮動小数に変換されてまた戻るので、浮動小数の精度が失われます。
.Pp
.Tn ANSI
16 進文字定数はわざと用意されていません。
.Pp
エスケープシーケンス \e000 が文字列終端子です。
.Ar format
中に存在すると、
.Ar format
は \e000 文字のところで切り捨てられます。