gpt4 book ai didi

c - Linux | C 中的 Shell 实现 |输入重定向不显示

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:54 26 4
gpt4 key购买 nike

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

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

COMMAND->

[其中 COMMAND-> 是我的提示符]

当我打印 child 死亡时的状态时,它的值为 0x8B。这说明了什么吗?

我已经关注了这篇文章,重定向实现的核心部分与此处建议的类似。 Implementing shell in C and need help handling input/output redirection

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

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

(我不能发布我的全部代码,因为这是一个现场作业,我可能最终会遇到 MOSS)

最佳答案

execvp 中传递的指针是 NULL,因此得到 SIGSEGV

根据管道和重定向对输入命令进行隔离的后端处理有错误。

关于c - Linux | C 中的 Shell 实现 |输入重定向不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13563037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com