如何使用C中的libbz2压缩目录

如何使用C中的libbz2压缩目录,第1张

概述我需要创建一个目录的tarball,然后用C中的bz2进行压缩.有没有使用libtar和libbz2的体面教程? 好的,我为你做了一个快速的例子.没有错误检查和各种任意决定,但它的工作. libbzip2具有相当的 good web documentation. libtar,而不是这么多,但是在包中有联机帮助页,一个例子和一个记录的头文件.以下可以使用g C TarBz2.cpp -ltar - @H_419_1@我需要创建一个目录的tarball,然后用C中的bz2进行压缩.有没有使用libtar和libbz2的体面教程?解决方法 好的,我为你做了一个快速的例子.没有错误检查和各种任意决定,但它的工作. libbzip2具有相当的 good web documentation. libtar,而不是这么多,但是在包中有联机帮助页,一个例子和一个记录的头文件.以下可以使用g C TarBz2.cpp -ltar -lbz2 -o C TarBz2.exe构建:
#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 tar@R_404_6852@name[] = "@[email protected]";    char srcDir[] = "dirToZip/";    char extractTo[] = ".";    tar_open(&pTar,tar@R_404_6852@name,NulL,O_WRONLY | O_CREAT,0644,TAR_GNU);    tar_append_tree(pTar,srcDir,extractTo);    close(tar_fd(pTar));    int tarFD = open(tar@R_404_6852@name,O_RDONLY);    char tbz2@R_404_6852@name[] =  "@[email protected]";    @R_404_6852@ *tbz2@R_404_6852@ = fopen(tbz2@R_404_6852@name,"wb");    int bzError;    const int BLOCK_MulTIPLIER = 7;    BZ@R_404_6852@ *pBz = BZ2_bzWriteOpen(&bzError,tbz2@R_404_6852@,BLOCK_MulTIPLIER,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,bytesRead);    }            BZ2_bzWriteClose(&bzError,NulL);    close(tarFD);    remove(tar@R_404_6852@name);    delete[] buf;}
总结

以上是内存溢出为你收集整理的如何使用C中的libbz2压缩目录全部内容,希望文章能够帮你解决如何使用C中的libbz2压缩目录所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1251228.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存