
第一个程序已在前篇文章中贴出,本文给出后两个。
使用共享存储区通信:
memserve.c:
memclient.c:
先运行semserve.c,后运行semclient.c。以上程序虽然已经可以做到在服务器和客户端间轮流修改共享存储区值并显示结果,但是在启动服务器和客户端的时候必须先输入两个不相等的值!这只不过是非常简单的一种处理方式,希望高手给出更好的方式哈!(百度之后发现有人通过对 share memory做P()V()操作来解决这个问题!我自己还想了一种方式:可以通过创建一个struct Memory{ id,value} 。id中存放进程的标识,然后在后面while()中输出时,做判断。是对方的id则输出。)
运行结果如下:
