Advertisement
mmatuska

libarchive_feed.c

Jan 19th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.81 KB | None | 0 0
  1. #include <archive_entry.h>
  2. #include <archive.h>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5.  
  6. int main(int argc, char *argv[]) {
  7.     struct archive *a;
  8.     struct archive_entry *e;
  9.     int n, r;
  10.     int64_t data;
  11.  
  12.     for (n = 1; n < argc; n++) {
  13.         a = archive_read_new();
  14.         archive_read_support_filter_all(a);
  15.         archive_read_support_format_all(a);
  16.  
  17.         r = archive_read_open_filename(a, argv[n], 10240); 
  18.         if (r != 0) {
  19.             printf("Couldn't open filename: %s\n", argv[n]);
  20.             archive_read_free(a);
  21.             continue;
  22.         }
  23.  
  24.         while (r == ARCHIVE_OK) {
  25.             e = archive_entry_new();
  26.             r = archive_read_next_header2(a, e);
  27.             if (r == ARCHIVE_OK) {
  28.                 data = archive_filter_bytes(a, -1);
  29.                 printf("Path: %s, Pos: %ld\n", archive_entry_pathname(e), data);
  30.             }
  31.             archive_entry_free(e);
  32.         }
  33.         archive_read_free(a);
  34.     }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement