#include #include #include #include int main(int argc, char *argv[]) { TAR *tar = NULL; int ret = 0; int exitcode = 0; if (argc != 2) { fprintf(stderr, "Usage: %s tarfile.tar\n", argv[0]); return 1; } ret = tar_open(&tar, argv[1], NULL, O_RDONLY, 0, 0); if (ret != 0) { fprintf(stderr, "Fail to open file: %s\n", argv[1]); return 1; } while (th_read(tar) == 0) { char *filename = th_get_pathname(tar); printf("%s\n", filename); free(filename); if (TH_ISREG(tar) && (tar_skip_regfile(tar) != 0)) { fprintf(stderr, "tar_skip_regfile()\n"); exitcode = 2; break; } } ret = tar_close(tar); tar = NULL; return exitcode; }