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;
}