C 使用Dup2重定向输入和输出
我一直在用C编写unixshell,并试图实现输入和输出重定向。我已经为此使用了Dup2,并且能够使它使我的输出重定向到一个文件,并且我的输入也被正确重定向。但是,在我完成这些之后,我如何再次使用Stdin和Stdout呢 以下是我在需要重定向时运行的代码片段: 在: 输出: 完成后,您可以复制回stdin和stdout的持有者C 使用Dup2重定向输入和输出,c,dup2,C,Dup2,我一直在用C编写unixshell,并试图实现输入和输出重定向。我已经为此使用了Dup2,并且能够使它使我的输出重定向到一个文件,并且我的输入也被正确重定向。但是,在我完成这些之后,我如何再次使用Stdin和Stdout呢 以下是我在需要重定向时运行的代码片段: 在: 输出: 完成后,您可以复制回stdin和stdout的持有者 int stdinHolder = dup(1); int stdoutHolder = dup(0); close(0); close(1); 我想你应该重新试验一
int stdinHolder = dup(1);
int stdoutHolder = dup(0);
close(0);
close(1);
我想你应该重新试验一下,如果你不关闭它们,我会尝试将2与0和1相加。
outFile = creat(tok.outfile, 0644);
outDup = dup2(outFile, STDOUT_FILENO);
close(outFile);
int stdinHolder = dup(0);
int stdoutHolder = dup(1);
close(0);
close(1);
int stdinHolder = dup(1);
int stdoutHolder = dup(0);
close(0);
close(1);