printf の方が優れている理由は...
- 出力をバッファリングします
- 文字列のフォーマットを行います
書き込みの方が優れている理由は...
- 文字列の長さを計算する必要はありません
- バッファリングしないため、デバッグがはるかに簡単です
- printf は write の単なるラッパーです
- 出力バッファにメモリを使用しません
- 上記の理由により、文字列の長さ (多くの場合既知であり、再計算する必要がない) を渡し、バッファーを管理することにより、printf よりも write の方がはるかに最適な (より少ないメモリ フットプリントでより高速な) プログラムを作成することができます。内部的に (これは実際に必要なメモリのみを使用し、プログラマが影響を与えることができない量ではありません)。
- フォーマットされていない文字列のみで呼び出された場合でも、printf() にはおそらくオーバーヘッドがあります。
結論として、printf() は人間が消費するあらゆる種類のデバッグ出力 (文字列の書式設定のため) に優先され、write() は通常の操作でデータを出力するために優先されると主張します。
さらに考えはありますか?