Testing 正在尝试为QNX函数MsgReceive()、MsgSend()和MsgReply()编写基本测试
我正试图编写一个简单的测试用例来测试MsgReceive、MsgSend和MsgReply,但我觉得我基本上误解了这些函数是如何工作的。以下是我的尝试:Testing 正在尝试为QNX函数MsgReceive()、MsgSend()和MsgReply()编写基本测试,testing,qnx,Testing,Qnx,我正试图编写一个简单的测试用例来测试MsgReceive、MsgSend和MsgReply,但我觉得我基本上误解了这些函数是如何工作的。以下是我的尝试: printf("Testing MsgReceive()...\n"); printf("Receives message and place it into a buffer.\n"); chid = ChannelCreate(_NTO_CHF_SENDER_LEN); if(chid == -1){
printf("Testing MsgReceive()...\n");
printf("Receives message and place it into a buffer.\n");
chid = ChannelCreate(_NTO_CHF_SENDER_LEN);
if(chid == -1){
printf("ChannelCreate FAILED!");
}
coid = ConnectAttach(0, 0, chid, _NTO_SIDE_CHANNEL, 0);
pid = fork();
if(pid == -1){
return;
}
if(pid == 0){
msgSend = MsgSend(coid, writemsg, 13, buffer, 13);
if(msgSend == -1){
printf("Child FAILED: %d\n", msgSend);
}
}
else{
msgRec = MsgReceive(chid, buffer, 13, NULL);
printf("Sent Message: %s\n", buffer);
if(msgRec == -1){
printf("Parent FAILED: %d\n", msgRec);
}
}
if(pid == 0){
if(ChannelDestroy(chid) == -1){
printf("ChannelDestroy() failed.\n");
}
}
我创建一个通道,然后将进程连接到该通道。我用叉子叉,让孩子发送信息,让家长接收。但我永远无法让孩子送去。它总是失败。它到底是如何失败的?发生了什么?它到底是如何失败的?会发生什么?