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 , 。