struct mmsghdr
中的三个成员之一:
void *msg_control; /* ancillary data, see below */
size_t msg_controllen; /* ancillary data buffer len */
int msg_flags; /* flags on received message */
导致问题的原因:
sendmmsg()
返回-1,“没有可用的缓冲区空间”。memset(&(Msgs),0,sizeof(struct mmsghdr));
问题解决之后。手册页之一说
msg_flags
被忽略了,所以msg_control
搞砸了吗? 最佳答案
可能您已采用此结构的局部变量。
默认情况下,局部变量会使用垃圾初始化,从而导致此问题。
您甚至可以通过使全局变量相同来尝试此操作。