libarchive 如何读取连接 tar

libarchive how to read concatenated tar

我想读取一个 tar 文件,该文件是使用 cat one.tar.gz two.tar.gz .... > combined.tar.gz 使用 libarchive 连接多个 .tar.gz 文件制作的。

我可以使用 while(;;) r = archive_read_next_header(a, &entry); 很好地读取第一个 tar 文件的文件,但是一旦完成读取,我就会得到 Closing file Segmentation fault (core dumped)

如何让 libarchive 移动到读取下一个 tar 文件?

原来图书馆支持这个。只需要设置read_concatenated_archives选项集。

archive_read_set_options(a, "read_concatenated_archives")

参见 here 示例。