尝试从c ++ linux执行命令行代码

我尝试了下面的代码,从c ++代码与命令行通信。

#include<iostream> #include<cv.h> int main() { system("gnome-terminal"); system("cd"); } 

gnome-terminal命令执行正常。 closuresterminal后,当我期待cd执行,但是,没有发生。 你能帮我指出原因吗? 谢谢。 我期待的function,使cmd下降到主目录,但它没有。 我在linux工作

我甚至通过删除GNOME来试用它。 简单的CD不工作。 我在做什么?

如果我尝试LS,它似乎工作正常!

我的主要目标是打开一个新的terminal,并通过打开新terminal的当前程序在这个新的terminal上执行命令。 你能告诉我我怎么能做到这一点?

如果你想运行一个程序并等待它完成,然后再执行下一行,请看这个页面和示例代码: http : //www.thegeekstuff.com/2012/03/c-process-control-functions /

但是如果你想运行gnome-terminal并在新创建的窗口中执行命令,请执行以下操作:

 system("gnome-terminal -x sh -c 'cd /tmp ; ls -la'"); 

system函数创建一个shell子进程来执行指定的命令。

cd是一个shell命令,它只改变那个shell进程的当前工作目录。

所以孩子的cd可能工作正常,但它对你的C ++程序没有任何影响,这是一个不同的过程。

相反,你可能想看看Linux系统调用chdir

谢谢你的帮助!! 这个命令从这个链接工作得很好

https://superuser.com/questions/198015/open-gnome-terminal-programmatically-and-execute-commands-after-bashrc-was-execu

  gnome-terminal -x sh -c 'command1; command2; exec bash' 

我在新窗口中输入了相应的命令。 但是要改变工作目录中的工作目录,我还没有弄清楚。