博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unix编程——管道
阅读量:5874 次
发布时间:2019-06-19

本文共 997 字,大约阅读时间需要 3 分钟。

管道函数

#inlcude <unistd.h>

int pipe(int fd[2])

上图来自unix网络编程卷二,描述了父子进程通过两个管道进行数据通信。

一个简单父子进程通信的例程:

pipe.h:

#include 
#include
#include
void server(int rd,int wr) {
char buff[100]; ssize_t n; if((n = read(rd,buff,100)) ==0){
printf("no chars\n"); return; } buff[n] ='\0'; printf("%s\n",buff); write(wr,"Server got it\n",14); } void client(int rd,int wr) {
int n; char buff[100]; write(wr,"Hello,Server\n",13); while((n = read(rd,buff,100)) >0){
buff[n] ='\0'; printf("%s\n",buff); } } int main() {
int fd1[2]; int fd2[2]; pipe(fd1); pipe(fd2); pid_t cldp; if((cldp = fork()) ==0){
close(fd1[1]); close(fd2[0]); server(fd1[0],fd2[1]); exit(0); } close(fd1[0]); close(fd2[1]); client(fd2[0],fd1[1]); waitpid(cldp,NULL,0); exit(0); }

 

转载于:https://www.cnblogs.com/confide/archive/2011/08/14/2134658.html

你可能感兴趣的文章
云:虚拟之上的管理平台
查看>>
石墨烯+新能源:光伏领域应用潜力巨大
查看>>
本节书摘来自华章出版社《 自动化测试最佳实践:来自全球的经典自动化测试案例解析 》一 2.2 测试中的软件...
查看>>
2022 年 AI 会发展成什么样子,IBM 做出了 5 大预测
查看>>
深入NLP———看中文分词如何影响你的生活点滴 | 硬创公开课
查看>>
老叶观点:MySQL开发规范之我见
查看>>
阿里云重磅推出物联网安全运营中心Link SOC
查看>>
CDN WAF功能开放公测 提升网络应用安全性能
查看>>
oracle学习笔记-第一篇
查看>>
redis演练(2) 最全redis命令列表
查看>>
不要猜,要测试!Code Tools: jmh
查看>>
python模块-part2
查看>>
Nginx 安装配置 禁止使用IP访问 rewrite重写 别名设置 日志轮询
查看>>
PowerShell天天学——01
查看>>
Linux下DNS实战篇之主从同步
查看>>
centos7 安装之后 TAB无法自动补全 !?
查看>>
MFC标签页--对话框
查看>>
我的友情链接
查看>>
mysql主从+keepalived高可用
查看>>
11g rac ORA-01157问题处理
查看>>