【问题标题】:Creating compressed archives with tar from C++使用 C++ 中的 tar 创建压缩档案
【发布时间】:2017-02-10 16:48:51
【问题描述】:
if(cmd == "zip")
        {
            string z = "tar cvf " + destination + "  " + file;
            system(z.c_str());
        }

我想压缩一个文件。到给定的目的地。但在我的情况下发生的是它制作了一个压缩的目标文件。就像我在 Linux 中使用它一样,在目标中我给出“桌面”,在文件中我给出文件名。所以它只使桌面压缩文件在桌面上没有扩展名。

【问题讨论】:

  • 主要与 c++ 关系不大。

标签: c++ linux system-calls tar


【解决方案1】:

你可以这样做:

string z = "tar cvzf " + destination + "/" + file + ".tar.gz  " + file;

(如果变量不受信任,则应清理,请记住 system() 调用 POSIX shell)

没有“z”,tar 创建一个.tar 文件,但您必须自己指定文件名和扩展名——这不是自动的。

使用“z”,它会创建一个.tar.gz 文件(这与zip 文件不同——普通的tar 不做zip 文件)。

还有其他选择。 详情请见tar(1)


顺便说一句,对system 函数的调用在技术上不是system call

【讨论】:

  • 赞成,但我真的没有理由在参数列表中使用v ;-)
  • @cfromme 谢谢。 v 是从 OP 复制而来的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-09
  • 2011-01-03
  • 2019-04-18
  • 2011-03-21
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
相关资源
最近更新 更多