在我的linux程序中,我想将tar.gz文件内容解压缩到特定目录。 C / C ++中是否有任何系统调用或任何C ++类可以从tar.gz文件中提取文件内容?
答案 0 :(得分:6)
有出色的库 libarchive ,支持使用一致的API访问多种存档格式。您可以按照 these examples 了解如何使用它。
如果您使用的是Ubuntu,则可以使用命令sudo apt-get install libarchive-dev
轻松安装此库。在其他平台上,您可能需要下载源代码并自行编译此库。
使用libarchive与使用system()
调用的一个优点是不依赖于系统实用程序,而且它也应该更快,因为它不会分叉。
答案 1 :(得分:0)
如果您加<cstdlib>
,可致电:
system("your tar or gz command");
答案 2 :(得分:0)
您可以使用libtar等几个库。
或者你可以使用你已经提到过的系统调用:
system("tar -zxf /your/file.tar.gz")
答案 3 :(得分:0)