gpt4 book ai didi

c - 在 C 中使用 libtar 库

转载 作者:IT王子 更新时间:2023-10-29 00:26:13 25 4
gpt4 key购买 nike

我正在尝试使用 c 制作一个 tar 文件。由于某种原因我不能使用

system("tar -cvf xxxx.tar xxxx");

我的代码是:

#include <stdio.h>
#include <libtar.h>
#include <fcntl.h>

int main(void) {

TAR *pTar;

char *tarFilename = "file.tar";
char *srcDir = "directory";

char *extractTo = ".";
tar_open(&pTar, tarFilename, NULL, O_WRONLY | O_CREAT, 0644, TAR_GNU);
tar_append_tree(pTar, srcDir, extractTo);
tar_close(pTar);
return (0);

}

运行这段代码后,当我想解压

tar -xvf file.tar

我遇到了一个错误

tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

我的 C 代码有什么问题?

最佳答案

我认为你需要调用 tar_append_eof http://linux.die.net/man/3/tar_append_eof在关闭 tar 文件之前。

The tar_append_eof() function writes an EOF marker (two blocks of all zeros) to the tar file associated with t.

关于c - 在 C 中使用 libtar 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24895219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com