gpt4 book ai didi

c - 为什么通过 cmd 运行可执行文件不会调用 system() 调用?

转载 作者:行者123 更新时间:2023-11-30 16:19:39 25 4
gpt4 key购买 nike

我有一小段 C 代码,如下所示。我尝试过使用两种方法来运行它。

1)与Clion一起使用Cygwin64环境

2)使用命令提示符(在这种情况下,我必须将 cygwin1.dll 移动到与可执行文件相同的文件夹中)。

我的代码需要调用 system() 函数来运行一些 cmd 命令。

如果我尝试第一种方法,代码可以完美运行。然而,当使用第二种方法时,system() 调用似乎什么也没做。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main() {

FILE *fp=fopen("run.bat", "w+");
fprintf(fp,"dir > result.txt\n");
fclose(fp);
printf("Before calling System\n");
system("cmd.exe /c run.bat");
if(access("result.txt",F_OK)==0){
printf("Run completed!\n");
}
printf("After calling System\n");

}

我用 1 得到的结果是“运行完成!”得到printed out normally .

但是,对于 2,没有创建“result.txt”,因此“运行完成!”线never appears .

现在我需要我的可执行文件可以在 cmd 中执行才能发挥作用。那么有人可以帮忙吗?

最佳答案

我能够解决这个问题,但不是以一种非常方便的方式。

我必须下载Microsoft Visual Studio,并在VS环境下运行Clion,并修复某些兼容性问题。

我想虽然大多数函数都可以正常工作,但 system() 是一个异常(exception)。无论如何,这个命令的使用并不是很广泛,但是在带有一些 Linux 编译器的 Windows 上使用它时要注意。

关于c - 为什么通过 cmd 运行可执行文件不会调用 system() 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55576567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com