【发布时间】:2017-06-02 05:05:57
【问题描述】:
我正在尝试使用以下命令从 cpp 程序调用系统
system("ln -s -t \"targetDir[0]\" \"baseDir[0]\"");
targetDir 和 baseDir 都是 QStringList。程序编译并运行,但是当我执行命令时,我得到错误 ln : targetDir[0] is an invalid command。当我通过对值进行硬编码而不是使用变量进行测试时,它工作得很好。我只能得出结论,将变量的值放入传递给 ln 的参数中并没有转义字符串。对于我的生活,我不知道为什么不。
有什么想法吗?
【问题讨论】:
-
首先格式化字符串,可以使用
std::stringappend (+) 运算符,也可以使用std::ostringstream(或Qt 等效项)。 -
为什么?你可以通过系统调用来做到这一点。