#include <unistd.h>
#include <sys/types.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int pipe_fd[2]; //创建管道标识符
pid_t pid;
char r_buffer[100];
char *w_buffer;
int ret;
memset(r_buffer,0,sizeof(r_buffer));
if(pipe(pipe_fd)<0) / /创建管道
{
printf("pipe create error\n");
write(pipe_fd[1],"hello everyone.",20);
waitpid(pid,NULL,0);
exit(0);
}
return 0;
}
#include <sys/types.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int pipe_fd[2]; //创建管道标识符
pid_t pid;
char r_buffer[100];
char *w_buffer;
int ret;
memset(r_buffer,0,sizeof(r_buffer));
if(pipe(pipe_fd)<0) / /创建管道
{
printf("pipe create error\n");
return -1
}
if((pid=fork())==0)
{
close(pipe_fd[1]);
sleep(2);
while(1) //循环读取管道数据
{
if((ret=read(pipe_fd[0],r_buffer,100))>0)
{
printf("%d data read from the pipe is %s\n",ret,r_buffer);
}
}
close(pipe_fd[0]);
exit(0);
}
else if(pid>0)
close(pipe_fd[0]);
while(1){//循环写入管道
write(pipe_fd[1],"hello everyone.",20);
}
close(pipe_fd[1]);waitpid(pid,NULL,0);
exit(0);
}
return 0;
}