[英]Try to execute command line codes from c++ linux
我尝试了以下代码,从c ++代码与命令行进行通信。
#include<iostream>
#include<cv.h>
int main()
{
system("gnome-terminal");
system("cd");
}
gnome-terminal命令执行正常。 关闭终端后,当我期待cd执行时,不会发生。 你能帮助我并指出原因吗? 谢谢。 我期待这个函数让cmd进入主目录,但事实并非如此。 我在linux工作
我甚至通过删除gnome尝试了它。 简单的CD无法正常工作。 我在做什么?
如果我尝试ls,它似乎工作正常!
我的主要目的是打开一个新终端,并通过打开新终端的当前程序在该新终端上执行命令。 你能告诉我怎样才能做到这一点吗?
如果您想在执行下一行之前运行程序并等待它完成,请在此处查看此页面和示例代码: 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
。
谢谢你的帮助!! 这个命令从这个链接完全正常
gnome-terminal -x sh -c 'command1; command2; exec bash'
我在新窗口中输入了相应的命令。 但是为了改变shell中的工作目录,我还没有想到这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.