[英]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.