为什么msgsnd发送信息总是失败
bool CDistributeInterface<T>::deliverMsg(CReader* pReader, T *pMsg)
{
#ifndef WIN32
printf("msgsnd %u. \n", pReader->getId());
struct MYTest
{
long msgType ;
T* pMsg;
};
int iRet = msgsnd(pReader->getId(), (void*)pMsg, sizeof(T)-sizeof(long), IPC_NOWAIT );
if (iRet < 0)
{
printf("iRet=%d \n", iRet);
if (EACCES == errno) printf("--- EACCES.\n");
else if (EAGAIN == errno) printf("--- EAGAIN. \n");
else if (EFAULT == errno) printf("--- EFAULT. \n");
else if (EIDRM == errno) printf("--- EIDRM. \n");
else if (EINTR == errno) printf("--- EINTR\n");
else if (EINVAL==errno) printf("---EINVAL \n");
else if (ENOMEM == errno) printf("--- ENOMEM \n");
else printf("unknown \n");
}
#endif
return true;
}
现在我有一个结构体
structor MyTest
{
int Msgtype;
short index;
char Buf[2048];
int dpc;
}
在调用模版函数时,为什么就不能发送消息到队列中去呢?