Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Execvp仅正确运行第一个命令_C++_C_Linux_Shell_Execvp - Fatal编程技术网

C++ Execvp仅正确运行第一个命令

C++ Execvp仅正确运行第一个命令,c++,c,linux,shell,execvp,C++,C,Linux,Shell,Execvp,我正在使用fork和execvp制作一个简单的shell。当我运行我的程序并键入像ls或ls-l这样的命令时,它就按照我喜欢的方式工作。当这项工作完成时,我的程序会坐在那里等待另一个命令,但当我输入另一个有效命令,甚至输入同一个命令时。execvp说ls:无法访问“ls”:没有这样的文件或目录。我不知道为什么会这样。我在再次运行程序时得到了相同的结果。 这是我的密码。我无法通过我的虚拟机复制它,所以我给它拍了张照片。如果有人想在上面编辑格式,那就太棒了。我试着看了看帮助 代码中的问题是在命令启动

我正在使用fork和execvp制作一个简单的shell。当我运行我的程序并键入像ls或ls-l这样的命令时,它就按照我喜欢的方式工作。当这项工作完成时,我的程序会坐在那里等待另一个命令,但当我输入另一个有效命令,甚至输入同一个命令时。execvp说ls:无法访问“ls”:没有这样的文件或目录。我不知道为什么会这样。我在再次运行程序时得到了相同的结果。 这是我的密码。我无法通过我的虚拟机复制它,所以我给它拍了张照片。如果有人想在上面编辑格式,那就太棒了。我试着看了看帮助


代码中的问题是在命令启动之间没有将参数计数器重置为0

int tokenIndex=0;
do {
应该是

int tokenIndex;
do {
  tokenIndex=0;
第一次它工作时,但第二次将ls作为ls的参数传递时,则会显示消息


尝试在shell中键入ls,您将得到完全相同的消息。

我们需要查看一些代码以提供帮助。请提供@Riley抱歉,我在输入标签时按了enter键。我无法正确弹出图像,因此我必须放置一个imgur链接,因为我的代码无法通过vm复制。不要发布文本图像!不要链接到代码的图片。将代码放在这里,或者,如果太长,无法进行清晰的格式设置,请使用一些愚蠢的安全设置,以防止编写此代码的承包商窃取代码,有时还可以防止将代码从VM复制/粘贴到运行stackoverflow的实机。所以别对他太苛刻了,真烦人