linux pipeの試み(一)
1443 ワード
まず、次の行のコードを見てみましょう.
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/types.h>
int main()
{
int pipefd[2];
int pfd = pipe(pipefd);
char buf[20];
int ffd = fork();
memset(buf,0,sizeof(buf));
if(ffd>0)
{
close(pipefd[0]);
sleep(5);
write(pipefd[1],"hello",sizeof("hello"));
printf("write finished
");
close(pipefd[1]);
// wait(NULL);
}
else
{
close(pipefd[1]);
// sleep(5);
read(pipefd[0],buf,sizeof(buf));
printf("read over
");
close(pipefd[0]);
}
printf("buf:%s,pid=%d,ppid=%d
",buf,getpid(),getppid());
sleep(2);
return 0;
}
,read , 。