- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
}
}
实验三 进程通信
. 实验学时与类型
学时: 2,课外学时:自定 实验类型:设计性实验
. 实验目的
了解 Linux 的软中断、管道、消息队列、共享存储区等进程间通信方式。
. 实验内容
软中断通信机制
(1) 请编写一个程序:循环输出“ how are you? ”,在按下 Ctrl+C 后中断显示,输出 “ Byebye! ”后退出程序。
#include<signal.h>
#include<stdio.h>
int k=1;
void int_func(int sig) // 软中断处理函数
{ k=0; }
Int main()
{ signal(SIGINT,int_func);// 预置软中断信号处理函数
While(k==1) Printf( “ how are you?\n ” );
Printf( “ byebye! ” );
Ilo w arc y uu? how arc you? h<jw arc you? how arc you? h<)w arc y Ciu?
Iww are you?
how arc yon?
Ilow arc you? how arc you?
h<jw arc you? how arc you?
A,然后子进程输出 Bojby ebye ! [ rOG t <j c a 1 hO s
A,然后子进程输出 Bo
(2)使用信号机制实现父子进程同步,父进程先输出
#in clude<sig nal.h>
#in clude<stdio.h>
int k=1;
void fun c(i nt sig) { k=0; }
main ()
{ int pid;
pid=fork();
if(pid>0)
{ printf( “ A\n ” );
kill(pid,12);
}
else if(pid==0)
{ sig nal(12,fu nc);
while(k==1)
sleep(1);
printf( “ B\n ”);
}
}
[rao oca Iho s i zzw] , / 12
A
通过管管道机制
通过管
(1)父子进程通过管道传送一串字符。 要求:子进程随机从键盘输入一串字符,
道发给父进程,父进程从管道中将消息读出并显示出来。
#in clude<stdio.h>
#in clude< uni std.h>
main ()
{ in t pid, fd[2];
char outpipe[50], in pipe[50];
pipe(fd);
pid=fork();
if (pid==0)
{
Printf( “ please in put some message:' n ”);
Fgets(i npipe,sizeof( in pipe),std in);
write(fd[1],in pipe,50);
}
else if (pid>0);
{ wait(0);
Printf( “ father get this message:\n ” );
read(fd[0],outpipe,50);
printf( “ %s\n”,outpipe);
}
}
[rootgzzw 亚以]# vi 2,c
[rootgzzw zzwj# gcc o 2 2.c
[roat@£zw wzw]# \/2
please input some me^sdge:
1223
father get thi^ message:
1223
I am(2)父子进程通过管道互相发送字符串。要求:子进程向父进程通过管道发送” child.",父进程回送” I am father. ”,父子进程将各自收到的字符串显示在屏幕上。
I am
#in lcude<stdio.h>
#in clude< uni std.h>
#in clude<stri ng.h>
main ()
{ in t pid, fd[2];
char str1[50], str2[50];
pipe(fd);
pid=fork();
if (pid==0)
{ strcpy(str1, ”1 ' m child ” );
write(fd[1],str1,strle n(str1));
Sleep(1);
read(fd[0],str2,50);
printf( “ Child received: %s\n ” ,str2);
}
else if (pid>0)
{ read(fd[0],str1,50);
printf( “ Pare nt received:%s\n ”,str1);
strcpy(str2, ” I ' m father. ” );
write(fd[1],str2,strle n(str2));
您可能关注的文档
- (规范)建筑施工企业安全生产标准化管理规范.docx
- (山东)钢结构工程施工验收资料表格大全(鲁GG001-065).docx
- 《电力工程技术》变电站可视化通信系统的设计及应用V2.0(2).docx
- 《货币金融学》模拟考试题1.docx
- 《水利工程施工》A答案0506-1(20-23班).docx
- 《银行会计学》第04章在线测试.docx
- 1.市政道路、排水工程施工组织设计(1).docx
- 1-工程勘察设计取费标准2002.docx
- 2.3架线施工作业指导书.docx
- 2008年二级建造师考试《相关法规》考试真题.docx
- 班级元旦晚会策划书 班级元旦晚会策划书4篇.doc
- 班会会议记录格式及 班会会议记录(实用【7篇】.doc
- 认真学习《中国共产党纪律处分条例》PPT党的六大纪律课件.pptx
- 党纪学习教育PPT新修订的《中国共产党纪律处分条例》解读课件.pptx
- 关于严明党的纪律和规矩的重要论述PPT课件.pptx
- 2024年国九条PPT关于加强监管防范风险推动资本市场高质量发展的若干意见课件.pptx
- 2024干部一定要知敬畏存戒惧守底线PPT相关重要论述课件.pptx
- 推动经济实现质的有效提升和量的合理增长PPT学习教育课件.pptx
- 2024坚持“四步联动”做实党员教育工作PPT新时代党员教育工作课件.pptx
- 权威解读《关于加强社区工作者队伍建设的意见》PPT课件.pptx
文档评论(0)