如何结束管道中的阅读?

时间:2019-07-13 04:16:13

标签: c pipe dup2

我从终端提示输入到标准输入没有问题。 我试图用管道的读取端替换stdin流,它的工作原理就像没有尽头。我还尝试了Ctr + D,但仍然无法退出阅读模式。 如何告诉过程Ctr + D信号是行尾?

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<string.h>
#include<sys/wait.h>
#include<fcntl.h>

const int w = 1;
const int r = 0;


int main()
{
  pipe(pfd);
  close(pfd[w]);


  dup2(pfd[r],STDIN_FILENO);
  char buf[21];
  int nread = read(STDIN_FILENO, buf, sizeof(char)*20);


  close(pfd[r]);
  exit(0);


}

0 个答案:

没有答案