c - 套接字:是什么导致 read() 返回 EINVAL



套接字客户端程序与服务器建立连接,写入一些字节并使用(阻塞)read()等待响应。

但这失败并出现错误EINVAL("无效参数")。先前对create()bind()connect()套接字的调用已成功进行。

我的问题

  • 这是怎么回事?

平台是Linux x64。

fd 附加到一个对象,该对象是 不适合阅读;或文件 以O_DIRECT旗帜打开,并且 在 BUBF 中指定的地址, 在计数中指定的值,或 当前文件偏移量不合适 一致。

见 http://www.kernel.org/doc/man-pages/online/pages/man2/read.2.html

问题是我向 read() 函数传递了 1 个字节的大小。似乎不支持
(为什么?最小大小是多少?它必须是2/平台位数的倍数?)。

现在我通过了 8 岁,它有效。谢谢大家的评论。

最新更新