2awk
つの出力関数があります:print
とprintf
。
- それらの実装は
awk
非常に異なりますか? - パフォーマンス/速度に関する違いは何ですか(可能であれば
time
、コマンドラインの「」だけでなく理論上の違いもあります)。 - 彼らは同じシステムコールを使用していますか?
print
最後に改行を出力します。printf
要求されない限り、しません。print
引数を文字列に変換し、OFS (出力フィールド区切り文字) で区切られた出力に送信します。printf
を使用してフォーマットする前に、文字列を double に変換する必要がある場合があります。%16.8g
write(2)
または両方に似たようなものですが、その<stdio.h>
上に層状のコード (おそらく) があります。合計すると、次のようになります。
print
よりも少し単純です (したがって高速です) printf
。print
必要なことを行う場合に使用します。printf
必要なことをするときに使用します。また、 a にsprintf
続けて a を使用すると、直接print
使用するよりも遅くなる可能性が高いため、使用printf
しないでください。
疑わしい場合は、測定してください。