Linux 下出现问题的 Bash shell(C)

Linux 下出现问题的 Bash shell(C)

跟随我的上一篇文章,我还有一个烦人的 bug 不会消失。

bash我在Linux下为该命令写了一个模拟器。

当我使用以下命令在一次运行中运行代码时:

ls Debug/ | grep r
ls >> file.jer & ls & ls & ls &
ls >> file.jer
ls > file1.rrr
ls & ls | grep e
ls & ls & ls &
ls Debug/ | grep r
ls Debug/ > k.out
ls Debug/ >> k.out
exit

ls >> file.jer然后程序在第三行写入ls: cannot access : No such file or directory.当我运行程序时,每次运行我都会点击输入分别地然后给出正确的输出。我尝试调试了很多次,但找不到问题所在。

具体问题:当我运行代码并点击 时ls Debug/ | grep r,会显示正确的输出。接下来,当我点击 时ls >> file.jer & ls & ls & ls &,这里的代码也运行得很好。但是当我点击 时ls >> file.jer,发生了一些非常错误的事情,我似乎找不到它的来源,命令的输出又3rd没有这样的文件或目录,但显然这是错误的,因为当我在一次运行中运行它时,该文件file.jer会附加当前路径的内容。

我有一个main, 和两个.h文件及其两个.c文件。

答案1

问题解决了!

该错误的原因是我将一个char**变量发送到一个更改该变量的函数中,然后free将该变量放回到 main 中。这是不允许的,因此我需要发送一个char***,然后一切就解决了。

谢谢大家。

相关内容