Linux C学习笔记07--管道通信
管道通信属于进程间通信的一种方式,使用方便,但是局限是父进程与子进程间的通信,下面是调试好的代码。
程序父进程创建2个管道,分别用于父进程写数据--子进程读数据和子进程写数据--父进程读数据:
#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h> int main(int argc,char* argv[])
{
int fprcw[]; //for parent read,child write
int fpwcr[];
char str[]; pid_t pid; if(pipe(fprcw) == -)
{
perror("pipe1");
return -;
}
if(pipe(fpwcr) == -)
{
perror("pipe2");
close(fprcw[]);
close(fpwcr[]);
return -;
} pid = fork();
if(pid == )
{
close(fprcw[]);
close(fpwcr[]);
sleep();
write(fprcw[],"hello world!",);
read(fpwcr[],str,);
printf("child str is:%s\n",str); close(fpwcr[]);
close(fprcw[]);
}
else if(pid > )
{
close(fpwcr[]);
close(fprcw[]);
write(fpwcr[],"how are you!",); if(waitpid(pid,NULL,) == -)
{
perror("waitpid");
}
read(fprcw[],str,);
printf("parent str is: %s\n",str);
close(fpwcr[]);
close(fprcw[]); }
else
{
perror("fork"); } return ;
}
Linux C学习笔记07--管道通信的更多相关文章
- Redis学习笔记7--Redis管道(pipeline)
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...
- 尚硅谷韩顺平Linux教程学习笔记
目录 尚硅谷韩顺平Linux教程学习笔记 写在前面 虚拟机 Linux目录结构 远程登录Linux系统 vi和vim编辑器 关机.重启和用户登录注销 用户管理 实用指令 组管理和权限管理 定时任务调度 ...
- Linux系统学习笔记:文件I/O
Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...
- Linux内核学习笔记-1.简介和入门
原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...
- linux 驱动学习笔记01--Linux 内核的编译
由于用的学习材料是<linux设备驱动开发详解(第二版)>,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式. #make confi ...
- Linux内核学习笔记-2.进程管理
原创文章,转载请注明:Linux内核学习笔记-2.进程管理) By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...
- 学习笔记 07 --- JUC集合
学习笔记 07 --- JUC集合 在讲JUC集合之前我们先总结一下Java的集合框架,主要包含Collection集合和Map类.Collection集合又能够划分为LIst和Set. 1. Lis ...
- Linux内核学习笔记二——进程
Linux内核学习笔记二——进程 一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源. 线程是进程中活动的对象,每个线程都拥有独立的程序计数器.进程栈和一组进程寄存器 ...
- 机器学习实战(Machine Learning in Action)学习笔记————07.使用Apriori算法进行关联分析
机器学习实战(Machine Learning in Action)学习笔记————07.使用Apriori算法进行关联分析 关键字:Apriori.关联规则挖掘.频繁项集作者:米仓山下时间:2018 ...
随机推荐
- firefox 不识别background-position-y / background-position-x
火狐不识别background-position-y 或background-position-x; 案例: 页面: 背景图: 一列按钮,点击时让当前背景图的background-position-y ...
- Jena Fuseki 101
前言 正如其承诺的那样 Expose your triples as a SPARQL end-point accessible over HTTP. Fuseki provides REST-sty ...
- Selenium定位二 --多个元素定位方法 和层级定位方法
定位多个元素: findElements()方法可以返回一个符合条件的元素List 组 如: public void hitUpdatePersonnel(WebDriver driver, int ...
- 用vs2010编译和调试多个arx版本的arx项目
翻译自dev guide<Compile and Debug Mixed-mode projects> 默认vs2010是使用ARX2014,开发AutoCAD2014使用的ARX, ...
- ECharts使用心得总结(二)
Echarts使用心得总结(二) 前言: 前一段时间一直都挺忙的,各种事,也没来得及每周的总结,趁着晚上的一点时间把项目中用的Echart中常用的各种图表给抽象总结了一下,趁着周末跟大家分享一下.之前 ...
- jquery 复制DIV与相关事件
<div class="pages_img fix" name="fixpages"> <div class=& ...
- ios 开发小技巧一
对于UITableViewCell中的textField/textView,你肯定想让它编辑时可以把所在行滚动到键盘上方.如果你的VC是UITableViewController或者子类,那么只要在o ...
- 继承extends
class Person{ String name; int age; void eat(){ System.out.println("吃饭"); } void introduce ...
- SQL语句 DML,DDL,DCL
数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT.DENY.REVOKE等语句,在默认状态下,只有 sysadmin.dbcreator.db_owner或d ...
- Fighting Game
感谢上外静中任淳同学提供 uses crt; label h; //h是重新开始游戏 const y1=18; y2=18; //p1,p2的纵坐标 var ...