当我在c+;中使用系统(“command”)时+;,我可以调用cygwin而不是普通的命令行吗? 通常,在C++应用程序中,我使用系统(“命令行”)< /C> >,在命令提示符下执行这个命令。是否有任何其他代码可以直接在Cygwin中执行命令?

当我在c+;中使用系统(“command”)时+;,我可以调用cygwin而不是普通的命令行吗? 通常,在C++应用程序中,我使用系统(“命令行”)< /C> >,在命令提示符下执行这个命令。是否有任何其他代码可以直接在Cygwin中执行命令?,c++,C++,Windows中的system()函数使用cmd。但是,可以从命令行实例化Cygwin并运行命令,如下所示: system("C:/cygwin/bin/bash -c \"echo hi\""); 这将导致Cygwin bash运行命令echo hi,并在程序的标准输出中打印输出 如果您在其他地方安装了cygwin,请确保用适当的位置替换C:/cygwin/bin/bash。调用的应用程序是否在cygwin上运行?您可以尝试设置COMSPEC环境变量,但我更愿意显式调用cygwin shel

Windows中的
system()
函数使用
cmd
。但是,可以从命令行实例化Cygwin并运行命令,如下所示:

system("C:/cygwin/bin/bash -c \"echo hi\"");
这将导致Cygwin bash运行命令
echo hi
,并在程序的标准输出中打印输出


如果您在其他地方安装了cygwin,请确保用适当的位置替换
C:/cygwin/bin/bash

调用的应用程序是否在cygwin上运行?您可以尝试设置
COMSPEC
环境变量,但我更愿意显式调用cygwin shell。显式=好,隐式=坏。或者至少相当脆弱。@Brian,例如,我编写了应用程序A,但我也想使用B.exe。因此,我在程序中使用
系统(“B.exe--config…”)
。但不知何故,B.exe无法在命令行中很好地运行,而是在cygwin中成功运行。所以我想是不是有什么方法我不能直接使用命令提示符而只能使用cygwin。@Cheerrandhth.-Alf,我应该使用
SetEnvironmentVariable(“COMSPEC”,“C:\\cygwin\\bin\\mintty.exe”)
?我不明白如何调用cygwin shell。@cindywmiao是否可能找不到
B.exe
?或者你的意思是它运行了,但有车吗?我测试过,但它对我不起作用。