linux 管道写文件,linux中用无名管道进行文件的读写

1管道是什么:

水管子大家知道,有两端,在此一端用来读一端用来写,其中一端的输出作为另外一端的输入。

2 函数原型

int pipe(int pipefd[2]);//参数中分别代表的两端

3 例子:管道一端作为写 另外一端作为读 父子进程实现

#include

#include

#include

int main()

{

pid_t pid;

int temp;

int pipedes[];

char s[]="letgo";

char d[];

if((pipe(pipedes))==-)

{

perror("pipe");

exit(EXIT_FAILURE);

}

if((pid=fork())==-)

{

perror("fork error");

exit(EXIT_FAILURE);

}else if(pid==)

{

//printf(“子进程写数据到管道读端”);

printf("子进程写数据到管道读端\n");

if((write(pipedes[],s,))==-)

{

perror("write");

exit(EXIT_FAILURE);

}else

{

printf("所写入得数据是%s\n",s);

exit(EXIT_SUCCESS);

}

}else if(pid>)

{

sleep();//等待子进程结束

printf("父进程从管道读数据\n");

if((read(pipedes[],d,))==-)

{

perror("read");

exit(EXIT_FAILURE);

}

printf("从管道读端读出得数据是%s\n",d);

}

return ;

}

运行结果:

ee8793692f8d1dd3b1db79511f912fd6.png

linux进程间通信--无名管道

管道 只能用于具有亲缘关系的进程之间通信是一个半双工的通信模式, 具有固定的写读端和写端,管道可以看成一种特殊的文件,对它可以使用普通的read.write等操作 管道的创建: #include &l ...

linux之无名管道

1.查看命令: man 2 pipe 2.头文件:#include 3.函数原型: int pipe(int pipefd[2]); a.pipefd[2] :无名管 ...

Linux 进程间通信 无名管道(pipe)

无名管道: 1)只能用于具有亲缘关系的进程之间的通信(无名管道是某一个进程创建的,不像普通文件有路径,在文件系统中是不可见的,其他进程要想打开,只能通过继承的方式去打开) 2)半双工的通信模式,具有固 ...

linux内核驱动中对文件的读写 【转】

本文转载自:http://blog.chinaunix.net/uid-13059007-id-5766941.html 有时候需要在Linux kernel--大多是在需要调试的驱动程序--中读写文 ...

Linux中用stat命令查看文件时3个时间点解析

有些时候,我们需要在Linux中使用stat命令来查看文件的详细信息.另外联想下,ls -l命令显示的是什么时间,touch命令修改文件的时间戳,修改的又是什么时间?在这里我们一起来试验下. 首先,我 ...

linux系统常用命令 -设置文件夹读写权限

设置文件夹的读写权限: sudo chmod -R 777 /data 权限码描述 sudo chmod 600 ××× (只有所有者有读和写的权限)sudo chmod 644 ××× (所有者有读 ...

Linux无名管道通信介绍

Linux下无名管道一般仅用于父子进程间的通信: 测试代码如下 //file name: fifo_test.c #include #include " ...

Linux简单程序实例(GNU工具链,进程,线程,无名管道pipe,基于fd的文件操作,信号,scoket)

一, GNU工具链简介: (1)编译代码步骤: 预处理 -> 编译 -> 汇编 -> 链接: 预处理:去掉注释,进行宏替换,头文件包含等工作: gcc -E test.c -o te ...

linux进程间通信之一:无名管道

无名管道是linux中管道通信的一种原始方法,有以下特征: 1.单工通信模式,具有固定的读端和写端: 2.管道可以看成是一种特殊的文件,对于它的读写可以使用普通的read(),write()等文件IO ...

随机推荐

Eclipse常用快捷键汇总

经常使用eclipse进行开发,不掌握快捷键步行啊,在此整理了一些快捷键,大家要灵活运用啊... (注:红色标出来的是经常使用到的快捷键,磨刀不误砍柴工啊...) Ctrl+1 快速修复(最经典的快捷 ...

单元测试之NSNull 检测

本文主要讲 单元测试之NSNull 检测,在现实开发中,我们最烦的往往就是服务端返回的数据中隐藏着NSNull的数据,一般我们的做法是通过[data isKindOfClass:[NSNull cla ...

mediawiki的管理与使用

本文主要讲述搭建好私有的mediawiki之后,管理员可能需要用到的几个功能.   维基百科的设计思路与我以往使用的系统不太一样,以管理员模式进入之后,并没有我预想的添加wiki页面入口,和侧边栏导航 ...

click和onclick的区别

onclick是绑定事件,click本身是方法作用是触发onclick事件,只要执行了元素的click()方法,下面有个示例,大家可以看看   Html代码 ? 1 2 3 4 5 6 7 8 9 1 ...

Ambari-部署文档

Ambari-server搭建过程 部署环境要求 操作系统:centos 5 或 centos 6 能够使用yum jdk版本号 1.7 官网安装教程 https://cwiki.apache.org ...

FastJson的用法

一.简单数据的序列化 pubic class UserInfo implements Serializable{ private String name; private int age; publi ...

YII进行数据增删改查分析

关于模型部分參考http://blog.csdn.net/buyingfei8888/article/details/40208729 控制器部分:

MySQL必知必会笔记

数据库和表的增删改 创建数据库 CREATE DATABASE 数据库名; # mysql中还可使用如下语句 CREATE SCHEMA 数据库名; 数据库选择 USE 数据库名; 创建表 creat ...

HDFS Architecture

http://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html Introduction Ha ...

tornado--启动

tornado--启动 from tornado import web from tornado import ioloop from tornado.httpserver import HTTPSe ...

你可能感兴趣的:(linux,管道写文件)