C++ msgsnd无效参数

C++ msgsnd无效参数,c++,ipc,msgsend,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); 他正在工作。 当然,我创建了带有msgget和kernel.msgmax

使用以下代码:

#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);
他正在工作。
当然,我创建了带有
msgget
kernel.msgmax=65536
OK的消息que。。。是我的错。对于遇到相同问题的每个人:

msg.id = 1;

id必须大于0。

正常。。。是我的错。对于遇到相同问题的每个人:

msg.id = 1;

id必须大于0。

能否为上下文提供一些进行此调用的代码?能否为上下文提供一些进行此调用的代码?