使用的msgsnd在手冊頁中提到的結構消息隊列的msgsnd多行文字領域
struct mymsg {
long mtype; /* message type */
char mtext[1]; /* body of message */
};
,如果你使用它像
func(char *array, int sizeofarray)
{
struct mymsg {
long mtype; /* message type */
char *ptr; /* body of message */
};
msgq.mtype = 1;
msgq.ptr = array;
msgsnd(msqid, &msgq, sizeofarray, 0);
}
分配PTR當地一些陣列[200](陣列可以作爲函數中的一個參數),在另一端收到的消息是垃圾。爲什麼是這樣?
這不是sizeof(ptr),而是原始數組的大小。無論如何..我已經猜到了caf回答的答案。我剛剛證實。 – bluegenetic 2010-01-31 18:20:04
我知道。你錯過了這一點。我試圖展示別的東西。 – Duck 2010-01-31 21:40:17
非常感謝你:) – bluegenetic 2010-02-01 05:35:09