簡體   English   中英

嘗試從c ++ linux執行命令行代碼

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

謝謝你的幫助!! 這個命令從這個鏈接完全正常

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'

我在新窗口中輸入了相應的命令。 但是為了改變shell中的工作目錄,我還沒有想到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM