Posted on 2008-10-28 19:22
Prayer 閱讀(1611)
評論(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,那運行時肯定會提示非法參數。