Posted on 2008-10-28 19:22
Prayer 阅读(1589)
评论(1) 编辑 收藏 引用 所属分类:
C/C++ 、
LINUX/UNIX/AIX
struct msg{
long type;
char mtext[1024];
};
struct msg_s
{
long type;
int msg_len;
char msg[512];
}msg_t;
在msgsnd的说明文档中你的msg_len是要大于0的.你试试给msg_t的msg_len域给个大于0的值看看
msgsnd里第二个参数不对。
在msgsnd的说明文档中你的msg_len是要大于0的.你试试给msg_t的msg_len域给个大于0的值看看
问题是你的msg_t是什么?不赋值你发消息还有什么意义呢?如果要编译通过,按楼上说的,msgsnd前加一句msg_t.msg_len = 1就可以了。但话说回来,最好你还是按楼上的楼上的...楼上的说的,把结构体改一下,加个long type。赋值时type一定要大于0。按你的结构,你的msg_len在msgsnd中是当作类型解析的,如果编译器把int型的msg_len初始化为0,那运行时肯定会提示非法参数。