如何正确使用system()在c++中执行命令
How to properly use system() to execute a command in C++?
我是Windows下c++编程的新手。我试图使用system()
函数在c++代码中执行命令说cuobjdump
:
system("C:\program files\nvidia gpu computing...\cuobjdump.exe --dump-cubin C:\..\input.exe");
输出:Usage : cuobjdump [options] <file>
下面是cuobjdump的选项列表。
当我执行这个程序时,我总是得到命令行中显示的cuobjdump帮助选项。就好像系统调用没有解析文件名一样。我做错了什么?我得到相同的结果,而使用createprocess。选项--dump-cubin
给出了一个错误,如果我输入错误。
尝试使用(即在cuobjdump.exe路径周围使用"
,在c++中正确转义为"
):
system(""C:\program files\nvidia gpu computing...\cuobjdump.exe" --dump-cubin C:\..\input.exe");
system("cuobjdump --dump-cubin pathfilename.exe");
f
被编译器解释为字符串转义序列,试试path\filename.exe
最明显的是,是C/c++字符串中的转义字符,因此如果您想要从字面上使用它,则必须将其加倍。
system("cuobjdump --dump-cubin path\filename.exe");
假设path
是正确的,您必须在字符串中使用双\
来表示单个。
我建议您使用CreateProcess,或ShellExecute/ShellExecuteEx,因为您正在Windows上工作。system
和ShellExecute
最终只调用CreateProcess
。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- C++,系统无法执行指定的程序
- 使用C++中的模板和运算符重载执行矩阵运算
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 执行函数时导致崩溃的变量
- 无论条件是否为true,if总是在c++中执行
- 当函数模板参数是具有默认参数的类模板时,函数模板参数的推导如何执行
- 在C++中对T*类型执行std::move的意外行为
- 使用QProcess执行命令,并将结果存储在QStringList中
- 如何在没有信号的情况下从C++执行QML插槽
- 如何确认我的constexpr表达式实际上已经在编译时执行
- C++17中的并行执行策略
- QML按钮点击功能执行顺序
- 程序在执行程序的其余部分之前退出
- 为什么catch中的代码没有被执行
- C++从其他 constexpr 创建 lambda 不能按顺序执行 Constexpr
- 将执行、作业和WinAPI相乘
- 对字符数组中的元素执行逐位操作
- 为什么g++在未执行的代码处标记强制转换错误
- 如何使用原子指针执行双缓冲