我正在实现一个shell,在我的shell中我必须能够处理'>''<''>>''|'。我得到了大部分工作,但是当用户想要在命令行中输入类似:
SHELL$ sort < input > output
我没有得到确切的结果。我得到的是排序将输出发送到 STDOUT,然后从 STDIN 读取排序并将输出发送到“输出”
我知道我必须使用重定向排序的输入
dup2(fd, STDIN_FILENO)
fd 是输入文件的文件描述符。
我很好奇的部分是我如何重定向排序的输出,而不是将输出发送到 STDOUT,将其发送给我们 '>' 所指向的,在我的示例中是输出
所以命令 sort 读取输入:“sort < input”,而这个:“> output”最终会将 sort 的输出发送到“output”。
提前致谢!