gpt4 book ai didi

c - setsockopt 返回 errno=2

转载 作者:太空宇宙 更新时间:2023-11-04 01:13:09 24 4
gpt4 key购买 nike

我正在创建一个 UDP 套接字 (centos 6),我想用它发送广播消息。一切正常,创建套接字有效 - socket(..) 返回 value=25,但是:

int val = 1;
if (setsockopt(a, SOL_SOCKET, SO_BROADCAST, &val, sizeof(val)) < 1){
debug("setsockoopt failed with errno: %d, socket %d", errno, a);
}

setsockopt 将 errno 设置为 value = 2。通信正常,我将 udp 数据包发送到 x.x.x.255 主机,我所有的应用程序都收到了它,但我想知道 errno 是从哪里来的(errno=2=没有这样的文件或目录)

最好的问候

最佳答案

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

来自 setsockopt manpage成功返回 0,所以这只是你的条件错误。如果没有错误,errno 的值是不相关的,这就是为什么在这里你得到一个相当荒谬的值。

if (setsockopt(a, SOL_SOCKET, SO_BROADCAST, &val, sizeof(val)) != 0){

是你需要的。

关于c - setsockopt 返回 errno=2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7498191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com