进程通信的系统调用很常用
进程通信的系统调用
•pipe系统调用
格式: int pipe (filedes)
int filedes [2];
•消息机制
•Msgid=msgget(key,msgflg)
key_t key;
int msgflg;
•Msgctl(msgid, cmd, buf)
int msgid, cmd;
msgqid_ds #buf;
•msgsnd(msgid, msgp, msgsz, msgflg)
int msgid;
struct msgbuf *msgp;
int msgsz, msgflg;
•msgrcv (msgid, msgp, msgsz, msgtyp, msgflg );
int msgid;
struct msgbuf *msgp;
int msgsz;
long msgtyp;
int msgflg;
管道通信程序#include <stdio.h>
#include <fcntl.h>
char parent[]={“A message from parent .”};
char child[]={“A message from child .”};
main()
{int chan1[2],chan2[2];
char buf[100];
if (pipe(chan1)==-1 || pipe(chan2)==-1) errexit(“pipe”);
if (fork())
{close(chan1[0]); close(chan2[1]);
write(chan1[1],parent,sizeof parent);
close(chan1[1]);
read(chan2[0],buf,100);
printf(“parent process : %s \n”,buf);
close(chan2[0]);
}
else
{close(chan1[1]); close(chan2[0]);
read(chan1[0],buf,100);
printf(“child process : %s \n”,buf);
write(chan2[1],child,sizeof child);
close(chan2[1]); close(chan1[0]);
}
}
5. 实验题:
用C语言编制一个使用进程控制和进程通信类系统调用的程序。
编辑工具: X-windows gedit全屏幕编辑程序。
vi
编译命令: $gcc ^^^.c -o ***
(源程序名) (可执行文件名)
或 $gcc ^^^.c
默认可执行文件为 a.out
执行 $ . /a.out
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
大功率稳压逆变电源电路
台湾两艘“基德”级驱逐舰正式入役
▲\"高速路\"上的企业邮局,能让企业不流失合作商机 ?
基于宽禁带器件的高功率密度电源设计关键考量
向tg求救
台湾透露“光华六号”隐身导弹艇细节
台军装备美制AAV7两栖突击车
联发科无惧手机芯片下滑 蔡力行:ASIC项目延续到2028年
比亚迪:公司1月份销售超21万辆,蝉联中国新能源汽车销量冠军
比亚迪1月德国市场销量暴增1018.7%,是特斯拉的两倍多
三星电子计划上调4nm与8nm工艺价格,涨幅约10%
新型正弦波逆变电源电路
单片机设计
[求助]VxWorks下启动型的应用程序设计
Cerebras再获10亿美元融资,押注晶圆级AI芯片
内存墙瓶颈:AI计算引爆内存超级周期
使用LabVIEW测试、控制以及嵌入式应用
clps7111
codetest_ds
三星、SK海力士HBM4:16层堆叠封装谁更胜一筹?
为何迈向2纳米制程?
dasmz80
台军即将具备24小时空中预警能力
100~200W逆变电源电路
用单片机制作的纯正弦波逆变电源电路
[求助]求REAL VIEW 2.2
内存短缺拖累业绩预期,高通盘后股价下跌近10%
dc_tu
专业提供TMS320C5000 DSP 平台全套软硬件解决方案
自制大功率高效逆变模块