gpt4 book ai didi

c - 在 C 中执行 Windows 命令

转载 作者:太空宇宙 更新时间:2023-11-04 07:01:36 24 4
gpt4 key购买 nike

我有一个批处理文件,它将方向更改为特定工具链并执行如下命令:

cd C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin

avr-objcopy -O binary C:\Users\cinar\Desktop\hextobin\GccApplication.elf C:\Users\cinar\Desktop\hextobin\GccApplication.bin

我想对我的 C 应用程序执行此操作。我找到了 this topic ,尝试了 system(); 命令,它部分起作用。我可以这样称呼:

system("cd");

然后返回方向。但是我不能用这个命令改变它:

system("cd C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin");

这导致了关于未知转义的编译警告,所以我添加了 \ 转义并尝试了这个:

system("cd C:\\Program Files (x86)\\Atmel\\Studio\\7.0\\toolchain\\avr8\\avr8-gnu-toolchain\\bin");

我能够编译并运行它,但这并没有改变方向。

有没有可能用 system() 执行我的命令?因为我只想改变方向并执行一个命令,所以我想保持简单。

更新:后来发现这个话题: system("cd <path>") in a C program

然后用这个解决了我的查询:

chdir("C:\\Program Files (x86)\\Atmel\\Studio\\7.0\\toolchain\\avr8\\avr8-gnu-toolchain\\bin");

system("avr-objcopy -O binary C:\\Users\\cinar\\Desktop\\ff.elf C:\\Users\\cinar\\Desktop\\ff.bin");

最佳答案

您的程序有一些不正确的假设。首先,“cd”“dir”不是程序,而是shell内置的命令,cmd.exe。其次,我怀疑您根本不需要更改当前目录。

无论哪种方式,因为这是一个 Windows 系统,我会看一个关于如何用 CreateProcess() 启动程序的例子。 .

要更改当前目录,请检查 CreateProcess() 调用的 lpCurrentDirectory 参数。

还有

system("dir Users\\whatEverNextFolder > test.txt");

关于c - 在 C 中执行 Windows 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37385349/

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