Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <archive.h>
- #include <archive_entry.h>
- #include <stdlib.h>
- #include <stdio.h>
- int main(int argc, char *argv[]) {
- struct archive *a;
- struct archive_entry *e;
- int n, r;
- int64_t data;
- char *rbuf;
- for (n = 1; n < argc; n++) {
- a = archive_read_new();
- archive_read_support_filter_all(a);
- archive_read_support_format_all(a);
- r = archive_read_open_filename(a, argv[n], 10240);
- if (r != ARCHIVE_OK) {
- printf("Couldn't read filename: %s\n", argv[n]);
- archive_read_free(a);
- continue;
- }
- while (r == ARCHIVE_OK) {
- r = archive_read_next_header(a, &e);
- if (r == ARCHIVE_OK) {
- data = archive_filter_bytes(a, -1);
- printf("Path: %s, Pos: %ld\n", archive_entry_pathname(e), data);
- rbuf = malloc(10240);
- while (archive_read_data(a, rbuf, 10240) > 0)
- ;
- free(rbuf);
- }
- }
- archive_read_free(a);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement