write(fd, str1, strlen(str1));
write(fd, str2, strlen(str2));
write(fd, str3, strlen(str3));
// 3次系统调用 - 慢!writev(fd, iov, 3);
// 1次系统调用 - 快!- 减少系统调用次数 - 从用户态切换到内核态的开销很大
- 原子性 - 数据作为一个整体写入,不会被其他进程的写入打断
- 避免内存复制 - 不需要先将多个缓冲区合并到一个大缓冲区
- 更高效 - 特别是在网络编程和文件 I/O 中
- 网络编程:发送 HTTP 响应头和正文
- 文件操作:读写结构化数据(如数据库记录)
- 日志系统:写入时间戳、级别、消息等多个部分
- 零拷贝技术:与 sendfile() 等配合使用