printf 更好,因为...
- 它缓冲输出
- 它进行字符串格式化
写得更好,因为...
- 它不必计算字符串长度
- 调试起来容易得多,因为它不缓冲
- printf 只是 write 的包装器
- 它不使用任何内存作为输出缓冲区
- 由于上述原因,通过传递字符串长度(通常已知且无需重新计算)并管理缓冲区,可以使用 write 创建比使用 printf 更优化(速度更快,内存占用更少)的程序内部(它只占用实际需要的内存,而不是一些不受程序员影响的内存)。
- 即使仅使用非格式化字符串调用 printf() 也可能存在一些开销
总而言之,我认为 printf() 更适合用于人类消费的各种调试输出(因为字符串格式),而 write() 更适合在正常操作中输出数据。
还有什么想法吗?