c++ - msgsnd 参数无效

标签 c++ ipc msgsend

使用以下代码:

#define MSGLEN 128

typedef struct {
long id;
char message[MSGLEN];
} data;

data msg;

msgsnd(msg_id, &msg, MSGLEN, IPC_NOWAIT);

我收到无效参数错误,但是

msgsnd(msg_id, &msg.message, MSGLEN, IPC_NOWAIT);

正在工作。 当然,我使用 msggetkernel.msgmax = 65536

创建了消息队列

最佳答案

好吧……我的错。对于遇到同样问题的每个人:

msg.id = 1;

id必须大于0。

关于c++ - msgsnd 参数无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40306970/

相关文章:

c - mmap() 用于共享内存和线程

Linux IPC技术的选择

c - 消息队列。 msgsend msgrcv。 C 语言中的 System V IPC 系统调用 (Linux)

c++ - 为什么在C++ big endian中使用bitshift转换为int16无效?

c++ - 类内的重载函数(Students())是输出输入的信息,但是没有作用

c++ - 以特定顺序扩展可变参数模板值的最有效方法是什么?

C++ 重载 += 带有双指针的运算符

c - 使用一根管道在父子之间进行读写