1

我在 C 中实现 shell,在实现重定向操作时,我看到输出重定向工作正常,但输入重定向操作没有做任何事情。(标准输出中没有显示)

COMMAND-> wc < out.txt
Child 12878 died 0x008B

COMMAND->

[COMMAND-> 是我的提示]

当我打印孩子死亡时的状态时,它的值是 0x8B。这是否意味着什么?

我已经关注了这篇文章,重定向实现的核心部分与这里的建议类似。 在 C 中实现 shell 并需要帮助处理输入/输出重定向

这是输入重定向中发生的事情的要点:

in = open(file_name, O_RDONLY);
dup2(in,0);
close(in);
execvp("wc",args);

(我不能发布我的整个代码,因为这是一个现场作业,我最终可能会被 MOSS 抓住)

4

1 回答 1

0

传入的指针execvpNULL并因此得到SIGSEGV

输入命令的后端处理基于管道和重定向将它们隔离有错误。

于 2012-11-27T01:36:52.660 回答