Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <stdlib.h>
- #include <libtar.h>
- #include <bzlib.h>
- #include <unistd.h>
- int main()
- {
- TAR *pTar;
- char tarFilename[] = "file.tar";
- char srcDir[] = "dirToZip/";
- char extractTo[] = ".";
- tar_open(&pTar, tarFilename, NULL, O_WRONLY | O_CREAT, 0644, TAR_GNU);
- tar_append_tree(pTar, srcDir, extractTo);
- close(tar_fd(pTar));
- int tarFD = open(tarFilename, O_RDONLY);
- char tbz2Filename[] = "file.tar.bz2";
- FILE *tbz2File = fopen(tbz2Filename, "wb");
- int bzError;
- const int BLOCK_MULTIPLIER = 7;
- BZFILE *pBz = BZ2_bzWriteOpen(&bzError, tbz2File, BLOCK_MULTIPLIER, 0, 0);
- const int BUF_SIZE = 10000;
- char* buf = new char[BUF_SIZE];
- ssize_t bytesRead;
- while((bytesRead = read(tarFD, buf, BUF_SIZE)) > 0)
- {
- BZ2_bzWrite(&bzError, pBz, buf, bytesRead);
- }
- BZ2_bzWriteClose(&bzError, pBz, 0, NULL, NULL);
- close(tarFD);
- remove(tarFilename);
- delete[] buf;
- }
- system("/path/to/gtar cfj tarballname.tar.bz2 dirname");
Add Comment
Please, Sign In to add comment