在linux下,用c++中的system()执行命令的转义序列
escape sequences for executing a command with system() in c++, under linux
我想使用system()
执行一个命令。该命令需要一个文件名作为参数。类似这样的东西:
void f(string filename){
strnig cmd = "path/to/my/command " + filename;
system(cmd.c_str());
...
}
我的问题是,我可以使用什么转义序列,这样在filename中接收到的字符串将被认为只是文件名,而不是其他。例如,如果是filename = "aname;rm *"
,我不希望我的命令在"aname"
上执行,然后"rm *"
被视为一个新命令,并从我的当前目录中删除所有内容。
此外,我希望我的文件名能够包含特殊字符,如:'
、"
或空格,而不会影响命令的执行。
我如何在c++中做到这一点?
谢谢!
人工系统:
system()通过调用/bin/sh-c命令来执行命令中指定的命令
所以使用shell所推崇的转义序列。
相关文章:
- 使用QProcess执行命令,并将结果存储在QStringList中
- 如何在 Minecraft 服务器上执行命令
- 如何在C++中执行命令并获取命令的返回代码标准输出和标准
- 如何查看完整的CMD执行命令,包括参数和标志?
- CPP 中 z3 的编译和执行命令?
- 线程保持运行并执行命令
- 在 MinGW 和 MinGW-64 上执行命令后变量为空?
- popen() 将执行命令的输出写入 cout
- 如何在 Heroku 中的 Python 服务器上执行 "g++" 命令?
- 以普通用户身份执行命令
- 如何在生成之前在 cmake 中执行命令?
- 如何使用 c++ 在 cmd 中使用管理员权限执行命令
- 如何在Unix Shell中的后台执行命令
- 如何从连接的控制台执行命令
- 尝试在路由器上执行命令。C++ & libssh
- 在服务器上执行命令,然后将结果发送到Windows中的客户端
- 通过C编程打开终端并执行命令
- 在远程服务器上执行命令行命令
- 在Linux上使用c++执行命令时被阻止
- 使用popen执行命令