套接字客户端程序与服务器建立连接,写入一些字节并使用(阻塞) read()
等待响应。
但这失败了,错误是EINVAL
(“无效参数”)。 以前对socket create()
, bind()
和connect()
的调用已成功完成。
我的问题
平台是Linux x64。
fd附在不适合阅读的物体上; 或者使用O_DIRECT标志打开文件,并且buf中指定的地址,count中指定的值或当前文件偏移量未适当对齐。
见https://www.kernel.org/doc/man-pages/online/pages/man2/read.2.html
问题是我将1个字节的大小传递给read()
函数。 似乎这不受支持
(为什么?最小尺寸是多少?它必须是2 /平台位数的倍数?)。
现在我正在通过8并且它有效。 谢谢大家的意见。
以上就是c/c++开发分享套接字:什么导致read()返回EINVAL?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/549775.html