该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

怎么将软中断与共享内存相结合?

现贴代码:

软中断:

#include

#include

#include

#include

int wait_mark;

void waiting( ) //自定义waiting 函数与 wait(0) 作用不同,作用是是通过循环使子进程停止。

{

while(wait_mark!=0);

}

void stop( ) //调用此函数时,使wait_mark=0,结束waiting 函数中的循环,使子进程继续执行

{

wait_mark=0;

}

int main()

{

int p1,p2;

while((p1=fork( ))==-1);

if(p1>0)

{

while((p2=fork( ))==-1);

if(p2>0) //在父进程中

{

printf("parent\n");

kill(p1,16); //发送信号16

kill(p2,17); //发送信号17

wait(0); //等待 p1、p2 中的某个子进程结束

wait(0); //等待 p1、p2 中的某个子进程结束

printf("parent process id killed! \n");

exit(0);

}

else /* p2==0*/

{

printf("p2\n");

wait_mark=1;

signal(17,stop); //将信号17和函数 stop 关联起来

waiting( ); //循环,知道父进程发送信号17时,调用stop后继续执行

printf("child p2 is killed by parent! \n");

exit(0);

}

}

else/*p1==0*/

{

printf("p1\n");

wait_mark=1;

signal(16,stop);

waiting( );

printf("child p1 is killed by parent! \n");

exit(0);

}

共享内存:

#include

#include

#include

#include

#define SHMKEY 75

int shmid,i;

int *addr;

void SERVER( );

void CLIENT( );

int main()

{

while((i=fork())==-1); //创建一个子进程执行 SERVER(),即一个子进程发送消息

if(!i)SERVER( );

while((i=fork())==-1); //创建另一个子进程执行CLIENT(),即一个子进程接收消息 if(!i) CLIENT( );

wait(0); /*父进程阻塞,直到子进程结束*/

wait(0);

}

void SERVER( ) //服务器端

{

shmid=shmget(SHMKEY,1024,0777|IPC_CREAT); //创建共享区,并先取得id

addr=shmat(shmid,0,0); //通过id获得起始地址(虚地址)

do

{

*addr=-1; //取走数据

while(*addr==-1); //停止,等待客户端发送数据

printf("(server)received ," );

printf("server *addr %d\n", *addr);

}

while(*addr);

shmctl(shmid,IPC_RMID,0); //删除共享区

exit(0);

}

void CLIENT( ) //客户端

{

int i;

shmid=shmget(SHMKEY,1024,0777); //打开共享区

addr=shmat(shmid,0,0); //指向第一个单元

for(i=5; i>=0; i--)

{

while(*addr!=-1); //服务端没有取走,反复等待。

printf("(client)sent, ");

*addr=i; //实现同步

printf("client i: %d\n",i);

}

exit(0);

}

求大佬们指教!!!

c语言用什么操作系统,用C语言写关于操作系统的一个问题。相关推荐

  1. linux c语言 ppt,linux操作系统下c语言编程入门.ppt

    linux操作系统下c语言编程入门.ppt Linux操作系统下C语言编程入门 CNT Linux操作系统简介基础知识进程介绍文件操作时间概念消息管理线程操作网络编程Linux下C开发工具介绍 一 L ...

  2. linux操作系统c语言编程,Linux操作系统下C语言编程从零开始

    这里向大家介绍一下在Linux/Unix 的机器上,进行 C/C++ 编程的一些入门级知识. · 所需具备的背景知识 · 开发所需的基本环境 · 获得帮助的途径 · 通过一个实例了解基本步骤 Prer ...

  3. Linux系统语言教程,Linux操作系统基础及语言基础教程-麦可网张凌华

    本教程共43讲,主要讲解了计算机组成原理概述.Linux基础及操作系统框架.Shell命令机制.Linux命令类库机制及常用命令.Linux应用程序安装及卸载.Linux服务程序的安装及配置.Vi的设 ...

  4. 操作系统都是用c语言写的吗,用C语言写关于操作系统的一个问题。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 怎么将软中断与共享内存相结合? 现贴代码: 软中断: #include #include #include #include int wait_mark; ...

  5. 操作系统系统用c语言写,用C语言写关于操作系统的一个问题。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 怎么将软中断与共享内存相结合? 现贴代码: 软中断: #include #include #include #include int wait_mark; ...

  6. 怎样用c语言写一个系统,用C语言写关于操作系统的一个问题。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 怎么将软中断与共享内存相结合? 现贴代码: 软中断: #include #include #include #include int wait_mark; ...

  7. c语言到底写什么系统,用C语言写关于操作系统的一个问题。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 怎么将软中断与共享内存相结合? 现贴代码: 软中断: #include #include #include #include int wait_mark; ...

  8. linux系统下怎么使用c语言,Linux操作系统下C语言使用.ppt

    Linux操作系统下C语言使用 Linux操作系统下C语言的使用 授课教师:江兰帆 E-Mail: jiang_lanfan@126.com GCC的使用 在LINUX开发环境下,GCC(GNU C ...

  9. linux操作系统下 c语言编程入门

    linux操作系统下 c语言编程入门 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门 ...

最新文章

  1. php渲染nodejs api,如何使用nodejs 服务器读取HTML文件渲染至前端
  2. 【预告】腾讯移动分析 MTA 即刻登陆 2017 GMTC 全球移动技术大会
  3. jQuery计数子元素
  4. oracle批输入命令流,ORACLE对表批处理操作
  5. 关于Ajax 错误:'sys'未定义解决方法.
  6. vue 怎么样不重复往数组里插入数据_Vue.js在数组中插入重复数据的实现代码分享...
  7. 日本那个大户又要抛了?
  8. 老赖名下无财产,可以执行老赖子女名下的财产吗?
  9. 1.11 超过人的表现
  10. 少女风vue组件库制作全攻略~~
  11. php数组排序不要用函数,PHP数组排序函数使用方法
  12. shell基础之pxe批量部署
  13. 4dda在linux中的意思,LINUX基础学习之基础命令(4)和 文件的inode信息 --2019-11-28...
  14. 迈道科技生产安全风险调度管控系统
  15. 【动画消消乐|CSS】088.HTML+CSS实现自定义简易过渡动画
  16. 个人理解设计为何要多用组合,少用继承
  17. 几种常用的产生负电源的方法
  18. 2019年中国研究生数学建模竞赛D题 汽车行驶工况构建
  19. BP神经网络模型一篇入门
  20. 朗润国际期货:本周A股投资者关注事件

热门文章

  1. opengles 2.0 点精灵 多边形偏移等备忘
  2. IT项目管理工具探讨之_项目群管理
  3. 批量杀死MySQL连接的几种方法
  4. spring datasource oracle,spring中2种oracle数据源的配置
  5. 图论 —— 带花树算法
  6. Vigenère密码(信息学奥赛一本通-T1402)
  7. 33 CO配置-控制-产品成本控制-成本对象控制-期末结算-定义每一工厂的差异码
  8. 快速排序 java代码_java实现快速排序
  9. 心态很容易受别人影响_女人生宝宝也看年龄?这3个影响生育能力的因素,你得了解清楚...
  10. PyTorch:Faster-RCNN