2

在 Linux 中使用 read() 系统调用从任何源(文件、套接字、管道)读取时,是否有可以返回的最小数据量(在阻塞模式下)?或者系统调用甚至可以返回 1 个字节?

当我想从管道中读取单个 int(4 或 8 个字节)时,是否还需要检查 read() 的返回值以查看我收到的是否小于 sizeof(int) 个字节?

4

1 回答 1

5

没有最小值,除非在块模式设备上,最小值是块大小。

您应该始终检查返回值;事情可能会破裂,您应该计划破裂并适当地处理短读取和错误,而不是假设对方总是完美的。

于 2012-04-15T09:16:28.017 回答