c++ - 如何创建一个新终端并在其中运行命令?

我有这样的功能

void smbProcess(){
    string smbTargetIP;
    cout<<"Target IP:  ";
    cin>>smbTargetIP;
    string commandSmb_S = "crackmapexec smb " + smbTargetIP;
    int smbLength = commandSmb_S.length();
    char commandSmb_C[smbLength + 1];
    strcpy(commandSmb_C, commandSmb_S.c_str());
    system("xterm -hold -e commandSmb_C");
}

我想创建一个新终端并运行我的命令(例如“crackmapexec smb 192.168.1.0/24”)。但它不起作用。当我尝试这个时,它有效

system("xterm -hold -e date");

这些也不起作用

system("xterm -hold -e 'commandSmb_C'");
system("xterm -hold -e "commandSmb_C"");

如果您知道另一种方法,它也可以

回答1

将“xterm -hold -e”添加到 commandSmb_S

void smbProcess(){
    string smbTargetIP;
    cout<<"Target IP:  ";
    cin>>smbTargetIP;
    string commandSmb_S = "xterm -hold -e crackmapexec smb " + smbTargetIP;
    int smbLength = commandSmb_S.length();
    char commandSmb_C[smbLength + 1];
    strcpy(commandSmb_C, commandSmb_S.c_str());
    system(commandSmb_C);
}

相似文章

python - Python - 在多行和多列中比较 values

我是Python的新手,我有一个如下所示的数据框(请参阅原始数据table)。最终目标是协调来自2个系统(sys1与sys2,在“源”列中标记)的记录(即id、rg、prd和数量)。我如何使用1个函数...