大神来看看,用c语言调用.exe程序,路径不对啊

大神来看看,用c语言调用.exe程序,路径不对啊,第1张

system("C:\\\windows\\\system32\\\cmd.exe")或者system("C:\\\windows\\\system32\\\cmd.exe")把windows那对引号去掉就可以了,在C语言的字符串里‘\\’才表示一个\字符。前面一个\是系统字符的前导而已,比如\n换行符n,\\就是表示一个反斜杠符\,而系统目录里面用双反斜杠和单反斜杠都是可以的所以ystem("C:\\\windows\\\system32\\\cmd.exe")和system("C:\\\windows\\\system32\\\cmd.exe")这两种写法都可以。

你这个问题的本质是ipc(进程间通讯)问题,属于 *** 作系统中的常见问题。如果在windows中应当使用事件(setevent)、互斥量(mutex)等方法来解决。

另外,由于c/c++属于编译型语言,不能保证任何一个变量编译后(尤其是优化后)都仍然存在,所以从一个程序中直接访问另外一个程序中的变量几乎不可能。特别的,对于调试器来说,调试器利用编译器生成的符号表来识别其它可执行文件中的变量,并通过特殊的手段替换被调试程序中的代码检测被调试程序中的变量是否发生了变化,但这一过程严重影响被调试软件的运行效率。调试器的复杂程度远远超过普通初学者的理解范围。

system()的输入参数是一个字符串,这个函数的作用就是在命令行下以命令的形式执行这个字符串。“C:\a.exe” 在命令行下是可以直接运行的,所以直接填到参数里就行了。不过需要注意的是,字符串作为参数的时候“\”要做一下转义,要变成“\\”才行。

所以正确的使用方法应该是

system("C:\\a.exe")

注意,system在调用的时候需要加上#include <stdlib.h>的头文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12106111.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存