長南洋一
cyoic****@maple*****
2011年 1月 14日 (金) 12:36:44 JST
長南です。 ご意見、ありがとうございます。 ふと気がついたのですが、man の著者が変な文章を書いているわけ ではなく、わたしが誤読していたようです。 > > -printf format > > True; print format on the standard output, interpreting `\' > > escapes and `%' directives. > > ... > > The escapes and directives are: わたしは、これを「A を B として解釈する」の意味に取っていました。 しかし、interpret をその意味で使うときは、interpret A as B と as を入れるのが普通なようです。 著者は interpreting "\ escapes" and "% directive" と言っている のではないでしょうか。そう考えると、まったく筋の通った文章に なります。「バックスラッシュ (による) エスケープと、パーセント 書式指定子を解釈する (この場合なら、認識して、変換するぐらいの 意味でしょう)」。こちらの可能性が高いような気がしてきました。 パラグラフ全部を書き直してみます。 -printf format 真を返す。標準出力に format を出力する。そのとき、format 中の '\' によるエスケープシーケンスと、'%' に始まる書式指定子を 認識して変換する。フィールドの幅や精度は、C 言語の 'printf' 関数と同じやり方で指定できる。フィールドの多くは、%d ではなく、 %s として出力されることに注意していただきたい。すなわち、 フラグが期待通りに効かないかもしれないのだ。だが、それはまた、 '-' フラグ (フィールドを強制的に左揃えにする) が使えるという ことでもある。 -print とは違って、-printf は文字列の末尾に 改行文字を付加しない。バックスラッシュによるエスケープ シーケンスと、書式指定子は以下のとおりである。 「'\' によるエスケープ」とか、「バックスラッシュによってエスケープ される文字」などという表現も考えられますけれど。 -- 長南洋一