用C++编译tar文件压缩存档文件
问题描述:
if(cmd == "zip")
{
string z = "tar cvf " + destination + " " + file;
system(z.c_str());
}
我想压缩一个文件。到一个给定的目的地。但是我的情况发生了什么,它是一个压缩文件的目的地。就像我在Linux中使用它,在Destination中给出“Desktop”,并在文件中给出文件名。所以它只在桌面上使桌面压缩文件没有扩展名。用C++编译tar文件压缩存档文件
答
你可以这样做:
string z = "tar cvzf " + destination + "/" + file + ".tar.gz " + file;
(变量,如果不受信任的,应进行消毒,牢记system()
调用POSIX壳)
没有 “Z”,tar创建一个.tar
文件,但是你必须自己指定文件名和扩展名 - 它不是自动的。
随着“Z”,它会创建一个.tar.gz
文件(这是一个不同于zip
文件共同tar
不做zip
文件)。
还有其他的选择。 有关更多详细信息,请参阅tar(1)。
BTW,到system
函数的调用在技术上是不是system call。
主要与C++无关。 –