Linux編程:匿名管道讀寫

Linux編程:匿名管道讀寫

#include<stdlib.h>
#include<stdio.h>
#include<unistd.h>
#include<sys/wait.h>
#include<sys/types.h>
#include<string.h>
int main()
{
	int fd[2];//定義文件描述符數組
	int ret=pipe(fd);//創建管道
	if(ret==-1)
	{
		perror("pipe");
		exit(1);	
	}
	pid_t pid=fork();//創建子進程
	if(pid>0)//父進程 寫
	{
		close(fd[0]);//關閉讀端
		char *p="hello\n";
		write(fd[1],p,strlen(p)+1);//寫數據
		close(fd[1]);
		wait(NULL);
	}else if(pid==0)//子進程 讀
	{
		close(fd[1]);
		char buf[64]={0};
		ret=read(fd[0],buf,sizeof(buf));
		close(fd[0]);
		write(STDOUT_FILENO,buf,ret);
	}
	return 0;
	
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章