linux c 中简单的管道实现

原创 2012年03月30日 16:50:48

 

管道一般用与父子进程之间通信,下面是一个简单的父子进程通信事例:

 

#include <unistd.h>
#include <stdio.h>
int main()
{
	int fd[2];								//管道入口fd[0]为读,fd[1]为写入口
	char r_buf[100];							
	char w_buf[20]= "hello word!";
	pid_t pid;
	if(pipe(fd) < 0)						//新建管道		
	{
		printf("pipe error!\n");
		exit(1);
	}

	if((pid = fork()) < 0)
	{
		printf("fork error!\n");
	}else if(pid == 0)					//子进程
		{
			printf("child\n");
			close(fd[1]);				//关闭写端口
			sleep(2);					//程序休眠2秒
			read(fd[0], r_buf, 100);//读阻塞,当管道内写入东西后才读取,所以当主程序运行完成后,子程序才运行完成。子程序由init管理
			printf("%s",r_buf);
		}else									//主进程
			{
				printf("father\n");
				close(fd[0]);
				sleep(2);
				write(fd[1], w_buf, 20);
			}
	
	return 0;
}


 

相关文章推荐

linux中有名管道的使用

有名管道又称为FIFO,是进程间通信的一种方式。FIFO具有以下特点:           1.全双工的通信模式,数据先进先出;           2.可以用于任意的进程之间,通过指定相同的管道...

linux i/o重定向与管道编程

1.Linux 使用三种流: 0:stdin           标准输入 1:stdout        标准输出 2:stderr         标准错误输出 2.默认的连接是tty 如...

linux管道pipe详解

管道 管道的概念: 管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递。调用pipe系统函数即可创建一个管道。有如下特质: 1. 其本质是一个伪文件(实为内核缓冲区) 2. 由两...
  • oguro
  • oguro
  • 2016年12月23日 17:16
  • 13720

linux c之管道的介绍、创建关闭和简单读写(父进程向子进程写入数据)

1、管道介绍、        进程间通信的几种主要手段中。其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具       ...

UNIX下C语言----管道

一、管道的概念管道是一种队列类型的数据结构,它的数据从一端输入,另一端输出。管道最常见的应用是连接两个进程的输入输出,即把一个进程的输出编程另一个进程的输入。shell中存在专门的管道运算符"|",例...

liunx监控磁盘读写状况 iotop

liunx监控磁盘读写状况 iotop 您有没有碰到过:没有运行任何程序,磁盘却不断执行读写动作,io指示灯常亮,各种操作迟缓甚至卡顿。碰到这种状况往往会感到束手无策,因为并不是 cpu 居高不下,可...

linux c之管道的介绍、创建关闭和简单读写(父进程向子进程写入数据)

1、管道介绍、        进程间通信的几种主要手段中。其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具       ...

linux c之命名管道简单使用

1、介绍FIFO(命名管道)            管道有局限性,只能在具有亲缘关系的进程间通信,但是命名管道克服了这个问题,可以实现无亲缘关系的进程之间的通信 API介绍: /* FI...

linux c之用命名管道实现进程通信

1、命名管道相关信息介绍 不是很了解命名管道先看这个篇博客 http://blog.csdn.net/u011068702/article/details/55102379 linux c之命名管道...

步步LINUX C--进程间通信(一)管道

linux间进程通信的方法在前一篇文章中已有详细介绍。http://blog.csdn.net/jmy5945hh/article/details/7350564 本篇详细介绍及代码测试第一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux c 中简单的管道实现
举报原因:
原因补充:

(最多只允许输入30个字)