收藏 分销(赏)

管道通信-pipe.doc

上传人:仙人****88 文档编号:8516658 上传时间:2025-02-16 格式:DOC 页数:2 大小:15.50KB 下载积分:10 金币
下载 相关 举报
管道通信-pipe.doc_第1页
第1页 / 共2页
管道通信-pipe.doc_第2页
第2页 / 共2页
本文档共2页,全文阅读请下载到手机保存,查看更方便
资源描述
管道:是指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件。向管道(共享文件)提供输入的发送进程(即写进程),以字符流形式将大量的数据送入管道;而接收管道 输出的接受进程(即读进程),则从管道中接收数据。由于发送进程和接收进程是利用管道进行通信的,故又称为管道通信。 下面是我自己写的一个关于管道父进程与子进程间通信,子进程向父进程发送自己的进程标示符以及字符串,父进程通过管道读出子进程发来的 信息!!! /*pipe.c*/ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> int main() { int fs[2];//定义一个数组 长度为2 char s[35]={"is sending a message to parent\0"};//定义一个字符创 char b[60],c[60]; pid_t pid;// 进程 int p; pipe(fs); // 创建管道 此函数是系统函数 参数就是一个长度为2 的数组 fs[1] 写 fs[0]读 pid =fork();//创建子进程 先创建管道在创建子进程 如果先创建子进程在创建管道的话,子进程识别不了管道。 if(pid ==0)//如果 是子进程 { sprintf(b , "%d ", getpid());// getpid在这里是得到子进程的进程号,然后把进程号发在char字符数组中 strcat(b,s);//把字符串s中的字符追加到字符串b中 close(fs[0]);//向进程中写之前 关闭读 可有可无 write(fs[1],b,sizeof(b));//把字符串b中的字符串 写进管道 exit(0);结束进程退出子进程 } else { read(fs[0],c,sizeof(c));从管道中读取字符串 printf("%s\n",c);//输出从管道中读取的字符串 exit(0); } return 0; } 在linux下编译 :gcc pipe.c -o pipe :./pipe 输出结果:3424 is sending a message to parent 注:每次运行进程号都不一样
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服