pipe.c

来自「一个C源代码分析器」· C语言 代码 · 共 67 行

C
67
字号
#include <sys/types.h>#include <unistd.h>#include <stdio.h>#include <stdlib.h>/* Read characters from the pipe and echo them to @code{stdout}.  */void read_from_pipe (int file){  FILE *stream;  int c;  stream = fdopen (file, "r");  while ((c = fgetc (stream)) != EOF)    putchar (c);  fclose (stream);}/* Write some random text to the pipe. */void write_to_pipe (int file){  FILE *stream;  stream = fdopen (file, "w");  fprintf (stream, "hello, world!\n");  fprintf (stream, "goodbye, world!\n");  fclose (stream);}intmain (void){  pid_t pid;  int mypipe[2];/*@group*/  /* Create the pipe. */  if (pipe (mypipe))    {      fprintf (stderr, "Pipe failed.\n");      return EXIT_FAILURE;    }/*@end group*/  /* Create the child process. */  pid = fork ();  if (pid == (pid_t) 0)    {      /* This is the child process. */      read_from_pipe (mypipe[0]);      return EXIT_SUCCESS;    }  else if (pid < (pid_t) 0)    {      /* The fork failed. */      fprintf (stderr, "Fork failed.\n");      return EXIT_FAILURE;    }  else    {      /* This is the parent process. */      write_to_pipe (mypipe[1]);      return EXIT_SUCCESS;    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?