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下c编程之管道

今天试了下管道,感觉挺有意思的~ 现在才发现,原来进程也有这么多的功能可以实现。管道分类: 根据进程的相互关系,可以分为:匿名管道与命名管道。1   匿名管道:管道是父进程和子进程间,或是子进程与子进...
  • wencool
  • wencool
  • 2008年04月12日 22:44
  • 5616

linux下的C语言开发(管道通信)

【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】     Linux系统本身为进程间通信提供了很多的方式,比如说管道、共享内存、socke...
  • feixiaoxing
  • feixiaoxing
  • 2012年02月02日 20:01
  • 20048

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

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

使用管道实现linux C++ 线程通信

可通过设置操作系统的管道容量参数,另外
  • yingkongshi99
  • yingkongshi99
  • 2014年08月11日 22:12
  • 2264

linux c 中简单的管道实现

管道一般用与父子进程之间通信,下面是一个简单的父子进程通信事例:   #include #include int main() { int fd[2]; //管道入口f...
  • Leeboy_Wang
  • Leeboy_Wang
  • 2012年03月30日 16:50
  • 2930

LINUXC_管道通信

实现:一个发一个写 接收: #include #include #include #include #include #include #include ...
  • huoyahuoya
  • huoyahuoya
  • 2016年10月27日 23:41
  • 184

[Linux C编程]有名管道实现守护进程

创建守护进程的步骤为: (1)在后台运行。使用fork()函数创建子进程,使其父进程结束,子进程运行。 (2)脱离控制终端,登录会话和进程组。使用setsid()函数(man setsid查看更详细的...
  • wzhCAlex
  • wzhCAlex
  • 2016年10月24日 23:26
  • 379

linux c之通过管道实现兄弟间进程通信:

1、兄弟间进程通信:          父进程创建管道,并使用fork函数创建2个进程,在第一个子进程发消息到第二个子进程,第2个子进程读取消息并处理,在父进程中不使用管道通信,所以什么都不做,直接关...
  • u011068702
  • u011068702
  • 2017年02月10日 17:47
  • 283

Linux管道实现机制

  • 2012年12月16日 23:17
  • 7KB
  • 下载

Linux管道的实现机制

之前学习管道的时候,遇到一个问题,就是linux下的管道到底是如何实现的。在 Linux 中,管道的实现并没有使用专门的数据结构,而是借助了文件系统的file结构和VFS的索引节点inode。通过将两...
  • Irean_Lau
  • Irean_Lau
  • 2016年03月21日 20:25
  • 1946
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux c 中简单的管道实现
举报原因:
原因补充:

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