首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
自考
编一个C程序,父进程首先设置信号SIGUSR1的处理方法和创建无名管道,再创建一个子进程,然后从键盘上读入一个命令串(如ls-l),并通过无名管道向子进程发送该命令串。之后再向子进程发送软中断信号SIGUSR1,父进程等待子进程终止。子进程读到命令后,睡眠
编一个C程序,父进程首先设置信号SIGUSR1的处理方法和创建无名管道,再创建一个子进程,然后从键盘上读入一个命令串(如ls-l),并通过无名管道向子进程发送该命令串。之后再向子进程发送软中断信号SIGUSR1,父进程等待子进程终止。子进程读到命令后,睡眠
admin
2016-05-12
37
问题
编一个C程序,父进程首先设置信号SIGUSR1的处理方法和创建无名管道,再创建一个子进程,然后从键盘上读入一个命令串(如ls-l),并通过无名管道向子进程发送该命令串。之后再向子进程发送软中断信号SIGUSR1,父进程等待子进程终止。子进程读到命令后,睡眠等待10秒,在收到软中断信号SIGUSR1后,在软中断处理程序中利用例行库中的程序执行,执行该命令串后返回。子进程然后打印Completed后终止自己。父进程在子进程完成任务和返回结果状态后结束运行。
选项
答案
程序清单24-3:sig.c #include<signal.h> #include<string.h> #include<stdlib.h> #include<stdio.h> char cmd[100]; main() { int pid,status,chan[2]; void func(); signal(SIGUSR1,func); //设置信号处理方式 pipe(chan); //创建无名管道 if(pid=fork()){ close(chan[0]); printf("Canmand="); gets(cmd); write(chan[1],cmd,strlen(cmd)+1); close(chan[1]); sleep(5); kill(pid,SIGUSR1); wait(&status); //等待子进程终止 printf("status=%d\n",status); }else{ close(chan[1]); bzero(cmd,sizeof(cmd)); read(chan[0],cmd,sizeof(cmd)); Sleep(10); printf("Completed.\n"); exit(0); } } void func() { system(cmd); }。
解析
转载请注明原文地址:https://kaotiyun.com/show/zvNx777K
本试题收录于:
操作系统题库理工类分类
0
操作系统
理工类
相关试题推荐
何谓DDA算法?
建设程序
方法控制包括()
下列不属于招标程序中成交阶段的是()
简述以施工图预算控制成本支出的方法。
时间性指标包括静态投资回收期、动态投资回收期、_______等。
漏洞分析的目的是发现目标系统中存在的安全隐患,分析所使用的安全机制是否能够保证系统的机密性、完整性和____________。
通常,可以利用____________这个简单命令得到主机操作系统的类型。
计算机病毒程序利用操作系统的___________或加载机制进入内存。
信号量S>0时的数值表示________。
随机试题
关于辩护,下列哪一选项是正确的?(卷二真题试卷第26题)
下列关于聚酯片基的特点,叙述错误的是
胎儿血液循环,错误的是
以理对理财规划的定义描述错误的是( )。
商业汇票是由银行签发的,委托付款人在见票时或者在指定日期无条件支付的一纸命令书。()
我国古代文化史上的书圣、诗圣和画圣分别是()。
国家机关工作人员职业道德的新特点包括()。
一元线性回归分析中对同归方程是否有效进行检验,H0:β=0,t=7.20,b=1.80,则斜率抽样分布的标准误SEb为()
提高Catalyst6500发生直接链路失效的收敛速度应使用的STP配置命令是()。
在菜单定义中,可以在定义菜单名称时为菜单项指定一个访问键。规定了菜单项的访问键为“s”的菜单项名称定义是()。
最新回复
(
0
)