c/c++语言开发共享套接字:什么导致read()返回EINVAL?

套接字客户端程序与服务器建立连接,写入一些字节并使用(阻塞) 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

      (0)
      上一篇 2021年1月14日
      下一篇 2021年1月14日

      精彩推荐