Tag: tar

如何知道Tar解析器中的文件

我正在开发一个visual c ++应用程序。 我需要知道tar文件中存在的文件类型(我的意思是它是否包含.png文件or.html文件或.txt文件)(仅通过c ++ prgramming) – 无需处理命令。 我已经对下面的链接有了一些了解 – 如何在这里解析tar文件我有信息在缓冲区[512]我们有一些文件存在于tar文件中。我的第一个问题是 (1.)假设我在tar中有超过1个文件,我从该位置获得了大小(&buffer [124],11); 从512到文件的大小,我有该文件的内容,我把它存储在一个缓冲区供我个人使用。但据我所知,这个规则(内容从512位置开始)对第一个位置的文件有效在tar文件中。 如果我必须获得3/4位置的文件的位置,内容和大小(如果不确定tar文件中存在的文件的位置怎么办)该怎么办? (2.)我在想什么? 如果我必须转到下一个文件内容我必须做512 * 2(因为第一个文件内容从512位置开始,所以下一个文件将在1024 – 我相信它是一个错误的方法,但可以任何一个请更正吗? ?)。 实际上我必须从tar文件(其中包含不同类型的文件数)中仅存储我的缓冲区中的Html文件内容

使用LibTar解压缩文件

当我尝试使用Libtar提取文件时,我遇到了一些问题。 这是我的代码: int htlp_decompress_decompress(char * filename) { TAR * tar_file; char rootdir[200]; strcpy(rootdir, “/var/cache/htpackage/”); if (tar_open(&tar_file, filename, NULL, O_RDONLY, 0, TAR_GNU) == -1) { fprintf(stderr, “tar_open(): %s\n”, strerror(errno)); return -1; } if (tar_extract_all(tar_file, rootdir) != 0) { fprintf(stderr, “tar_extract_all(): %s\n”, strerror(errno)); return -1; } if (tar_close(tar_file) != 0) { fprintf(stderr, “tar_close(): %s\n”, strerror(errno)); return -1; […]

如何在内存中解压缩文件(c编程)?

让我解释一下我想要实现的目标: 我有一个加密的tar文件。 我可以在内存中解密它,但显然我不能将解密后的数据作为真实文件写回硬盘。 解密数据在内存中构造为char *缓冲区; 我怎么能在记忆中解开呢? 我找不到libtar库的答案。 我还尝试使用execlp(“tar”, “tar”, “-xvO”, (void*)0)解压缩它。 但它并没有像我想的那样奏效。 任何人都可以给我一个最好的解决方案吗? 谢谢!