Closed. This question is opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
去年关闭。
Improve this question
方案:
我正在运行带有C++应用程序的嵌入式Linux发行版。我只需要压缩目录,然后将压缩后的输出放置在某个位置即可。而已。
我知道我们可以在命令行界面上使用以下命令来tar压缩目录。
我看到我可以选择在C++中运行系统命令。以下是一个示例。
环境:
嵌入式Linux
问题:
我想知道进行系统调用以将tar压缩为目录的利弊,而不是使用像zlib,zipios等库的利弊。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
去年关闭。
Improve this question
方案:
我正在运行带有C++应用程序的嵌入式Linux发行版。我只需要压缩目录,然后将压缩后的输出放置在某个位置即可。而已。
我知道我们可以在命令行界面上使用以下命令来tar压缩目录。
tar cvzf directory.tar.gz /path/to/directory
我看到我可以选择在C++中运行系统命令。以下是一个示例。
void CompressDirectory() {
std::system("tar cvzf directory.tar.gz /path/to/directory");
}
环境:
嵌入式Linux
问题:
我想知道进行系统调用以将tar压缩为目录的利弊,而不是使用像zlib,zipios等库的利弊。
最佳答案
system()
通常不受欢迎,因为与之相关的潜在安全风险。在明确说明所有内容的特定情况下,您会没事的。
您可以在程序中对其进行编码,以便以编程方式进行处理和处理,而无需脱壳,这是正确的方法。
只要您的tarball名称和目录都是硬编码的,我就不会想到任何安全问题,但是我要小心,以确保您不会覆盖任何东西或类似内容。
如果您自己以外的其他人甚至可以触摸您的服务器,请不要使用system()
。