我从终端提示输入到标准输入没有问题。 我试图用管道的读取端替换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);
}