用主进程创建两个进程,client进程向消息队列传信息,sever进程取,直到取到buf.mtype为1时退出。但我不知道为什么好想我的sever进程就始终没进去。高手帮忙看看那错了。详细点,我菜鸟。
#include <stdio.h>
#include <stdlib.h>
#include <semaphore.h>
#include <sys/types.h>
#include <unistd

展开全部
收起
2回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Caleb

    17人对此回答表示赞同

    do {}
    while()一般开发中不提倡用,几乎不会看到
    展开
    17
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 无可何如

    15人对此回答表示赞同

    你只在 server 进程中(对应spid==0),调用 open_queue 来打开消息队列,即msqid只在这个进程中有效,在host进程中(对应cpid==0),由于msqid无效,所以无法发送消息。

    解决方法:只要把
    do {
    msqid = open_queue(key);
    } while (msqid == -1);

    这段代码移到第一个fork之前,这样所有的进程中的msqid就
    展开
    15
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部