gpt4 book ai didi

c++ - 在 linux 下,在 C++ 中使用 system() 执行命令的转义序列

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:33 25 4
gpt4 key购买 nike

我想使用 system() 执行命令。该命令需要一个文件名作为参数。像这样:

void f(string filename){
strnig cmd = "path/to/my/command " + filename;
system(cmd.c_str());
...
}

我的问题是我可以使用什么转义序列,以便将文件名中接收到的字符串仅视为文件名,仅此而已。例如,如果 filename = "aname;rm *",我不希望我的命令在 "aname" 上执行,然后在 "rm *"上执行 被视为一个新命令并从我当前目录中删除所有内容。

此外,我希望我的文件名能够包含特殊字符,例如:'" 或空格,而不影响命令执行。

我如何在 C++ 中执行此操作?

谢谢!

最佳答案

人机系统:

system() executes a command specified in command by calling /bin/sh -c command

因此请使用您的 shell 支持的转义序列。

关于c++ - 在 linux 下,在 C++ 中使用 system() 执行命令的转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23101907/

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