pipe.c.texi

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

TEXI
67
字号
#include <sys/types.h>#include <unistd.h>#include <stdio.h>#include <stdlib.h>/* @r{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);@}/* @r{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  /* @r{Create the pipe.} */  if (pipe (mypipe))    @{      fprintf (stderr, "Pipe failed.\n");      return EXIT_FAILURE;    @}@end group  /* @r{Create the child process.} */  pid = fork ();  if (pid == (pid_t) 0)    @{      /* @r{This is the child process.} */      read_from_pipe (mypipe[0]);      return EXIT_SUCCESS;    @}  else if (pid < (pid_t) 0)    @{      /* @r{The fork failed.} */      fprintf (stderr, "Fork failed.\n");      return EXIT_FAILURE;    @}  else    @{      /* @r{This is the parent process.} */      write_to_pipe (mypipe[1]);      return EXIT_SUCCESS;    @}@}

⌨️ 快捷键说明

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