如何在linux平台下使用C++语言实现多文件的压缩解压缩(使用zlib依赖库)必重谢!

如何在linux平台下使用C++语言实现多文件的压缩解压缩(使用zlib依赖库)必重谢!,第1张

由于Unix系一贯坚持功能分离,所以通常是先tar再gzip来完成多文件一次压缩。

开发中一般是借助zlib-X.X.X.tar.gz\zlib-X.X.X.tar\zlib-X.X.X\contrib\minizip\实例中的接口:

ZLib 可能并不是一个针对 ZIP 文件的库,它只是一个针对 gzip 以及 deflate 算法的库。它提供了一个叫做 minizip

 (contrib\minizip) 例子来给出 *** 作 ZIP 文件的方法。下文将从 ZLib 出发,归结出两个傻瓜接口:BOOL ZipCompress(LPCTSTR lpszSourceFiles, LPCTSTR lpszDestFile)

BOOL ZipExtract(LPCTSTR lpszSourceFile, LPCTSTR lpszDestFolder)  

要引入的源文件  

ZLib 主目录下的代码,除 minigzip.c、example.c 外;  

contrib\minizip 下的代码,除 minizip.c、miniunz.c 外。

相关 API  

然 minizip 更像是个例子,但是除去其主程序 minizip.c 和 miniunz.c 后,剩下的部分我们可以看作是 ZLib 

的一个上层库,它封装了与 ZIP 文件格式相关的 *** 作。而 minizip.c 和 miniunz.c 

就是我们要改写的——把它从命令行程序改为上述傻瓜接口。minizip.c 和 miniunz.c 中用到的 API 主要有:  

压缩相关:  

zipOpen64  

zipClose  

zipOpenNewFileInZip  

zipCloseFileInZip  

zipWriteInFileInZip

解压相关:  

unzOpen64  

unzClose  

unzGetGlobalInfo64  

unzGoToNextFile  

unzGetCurrentFileInfo64  

unzOpenCurrentFile  

unzCloseCurrentFile  

unzReadCurrentFile

想必看到这些名字都能猜到怎么用了吧。好的接口果然能带给人愉悦的。minizip 中的这些函数有的是带“64”的有的是不带的,有的还有“2”、“3”、“4”版本。这里一律用带 64 的,不带“2”、“3”、“4”的。

来源参考:http://www.cppblog.com/Streamlet/archive/2010/09/22/127368.html

WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。WWW 是 Internet 的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。正是因为有了WWW工具,才使得近年来 Internet 迅速发展,且用户数量飞速增长。

开源的web服务器软件包括apache、kangle、nginx等。

Blog

Blog 全名Web log,中文意思是“网络日志”,后来缩写为Blog。它是继Email、BBS、IM之后出现的第四种网络交流方式,是网络时代的个人“读者文摘”,是以超级链接为武器的网络日记,是代表着新的生活方式和新的工作方式,更代表着新的学习方式。简言之,Blog 就是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。

开源的Blog软件有b2evolution(PHP+MySQL)、BLOG:CMS (PHP、基于Nucleus CMS)、BLOG:CMS (PHP、基于Nucleus CMS)等。

论坛

论坛又名网络论坛BBS,全称为Bulletin Board System(电子公告板)或者Bulletin Board Service(公告板服务)。是Internet上的一种电子信息服务系统。它提供一块公共电子白板,每个用户都可以在上面书写,可发布信息或提出看法。它是一种交互性强,内容丰富而即使的Internet电子信息服务系统。用户在BBS站点上可以获得各种信息服务,发布信息,进行讨论,聊天等等。

开源的论坛应用软件包括phpbb、BMForum、phpwind[等。 应用服务器定是指通过各种协议把商业逻辑曝露给客户端的程序。它提供了访问商业逻辑的途径以供客户端应用程序使用。应用服务器使用此商业逻辑就像调用对象的一个方法一样。简单的说能实现动态网页技术的服务器叫做应用服务器。

开源的应用服务器软件包括Enhydra (Java)、JBoss (Java)、Open3 (XML)等。 消息服务器作为网络的节点,专门用来存储、转发网络上的数据、信息(例如:聊天信息)。做一个形象的比喻:消息服务器就像是邮局的交换机,而微机、笔记本、PDA、手机等固定或移动的网络终端,就如散落在家庭、各种办公场所、公共场所等处的电话机。我们与外界日常的生活、工作中的电话交流、沟通,必须经过交换机,才能到达目标电话;同样如此,我们利用个人电脑,PDA,手机等,发送消息,也必须经过消息服务器,因此也可以说是消息服务器在“组织”和“领导”这些接收消息设备。

开源的消息服务器软件包括ArsDigita (Tcl &Java)、Exolab Group (J2EE,整合OpenEJB,OpenJMS,OpenORA,Tyrex)、Zend (PHP)等。 企业应用程序是一个泛指的概念,细分下来可分为企业资源计划(ERP)、客户关联管理、项目管理、内容管理、人力资源管理、自动化采购软件、信息仓库(CIW)、生产计划、库存管理、群组软体、B2B和图书馆资源整合系统(ILS)。

开源的企业应用程序包括Compiere (ERP+CRM)、Compiere、Gnome Planner 、ArsDigita、phpgroupware、J2EE、Akopia、Compiere (ERP+CRM)、openapplications、OpenBiblio等。 所谓无线网络,既包括允许用户建立远距离无线连接的全球语音和数据网络,也包括为近距离无线连接进行优化的红外线技术及射频技术,与有线网络的用途十分类似,最大的不同在于传输媒介的不同,利用无线电技术取代网线,可以和有线网络互为备份。

开源的无线应用程序有kannel、Jwap、Ophelia等。 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

开源的数据库软件有BerkelayDB、MySQL、SQLite等。 “桌面环境”可能仅仅是一个简单的窗口管理器,也可能是一个像 KDE 或者 GNOME这样的完整桌面应用程序套件。

开源的桌面环境类软件包括GNOME、GNUstep、KDE等。

窗口管理类

窗口管理,又名用户界面,电子计算机系统中实现用户与计算机信息交换的软件、硬件部分。软件部分包括用户与计算机信息交换的约定、 *** 作命令等处理软件,硬件部分包括输入装置和输出装置。目前常用的是图形用户界面,它采用多窗口系统,显示直接形象, *** 作简便。

开源的窗口管理类软件有Afterstep、Twm、fvwm、Window Maker等。

CD刻录类

CD刻录机的功能是:可以刻录CD,读取CD,但是却无法读取/写入DVD,功能上次于COMBO,又次于DVD刻录机。现在多数人使用的是DVDROM,COMBO,DVD刻录机。性能方面:读取——CDROM=CD刻录机<DVDROM=COMBO=DVD刻录机;写入——CD刻录机<COMBO<DVD刻录机。

开源的CD刻录软件有CD Record、Freeburn、Xfburn等。

文件编辑类

文件编辑类软件是一个泛指的概念,细分下来包括办公软件套件、记事本、PDF相关软件、科技文本编辑器、文本编辑器、WYSIWYG和文件处理。

开源的文件编辑类软件包括Gnome Office、KeyNote、FPDF、GNU TeXmacs、FreeDOS edlin、HTMLarea、AbiWord等。

教育类软件

教育类软件是一个泛指的概念,细分下来包括学习支持软件、语言相关软件、数学相关软件、科学研究软件、打字软件和其他教育软件。

开源的教育类软件包括ILIAS、FlashKard、KBruch、BioJava、GNU Typist、KEduca等。

金融相关软件

从广义上说,政府、个人、组织等市场主体通过募集、配置和使用资金而产生的所有资本流动都可称之为金融。因此,不仅是金融业者,有关政府的财政,行业企业的行为、以及个人的理财都是金融的一部分。

开源的金融相关软件有GnuCash、JCash、JMoney等。

游戏类软件

游戏有很多种,在不同的媒体会以不同型式出现,使用的道具或参与的人数不一样也会衍生出不同类型的游戏。其中包括:人手游戏、桌上游戏、版图游戏、纸上游戏、纸牌游戏、群体游戏、电子游戏、角色扮演游戏、益智类游戏和其他。

开源的游戏类软件有Abuse、Falcon's Eye、Java Risk、UFO2000、XulMine等。

网络软件

网络及因特网类软件是一个泛指的概念,细分下来包括电子邮件、即时通讯软件、通讯相关软件、文件传输软件、P2P文件共享软件、远程登录、网页浏览器、Webcam、Webgrabber、网络相关软件和其他网络软件。

络及因特网类软件有Magic Mail Monitor 3、AMSN、Slrn、Samba、eMule、RealVNC、Galeon、Dorgem、HTTrack、Apache Tomcat、OpenLDAP等。

数学软件类

是专门用来进行数学运算、数学规划、统计运算、工程运算、绘制数学图形或制作数学动画的软件。

开源的数学类软件包括GAP、MAⅪMA、SINGULAR等。

媒体类

体类软件是一个泛指的概念,细分下来包括音频编辑软件/音频管理软件、图形类/图片浏览类、媒体播放器类、视频剪辑类。

源的媒体类软件包括CD-DA X-Tractor、GOCR/JOCR、JCDSee、CoolPlayer、GNU VCDImager等。

*** 作系统类

*** 作系统(英语:Operating System,简称OS)是一管理电脑硬件与电脑软件资源的程序,同时也是计算机系统的核心与基石。 *** 作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、 *** 作网上与管理文件系统等基本事务。 *** 作系统也提供一个让用户与系统交互的 *** 作接口。

开源的 *** 作系统类软件有开源Unix(System V/BSD)、FreeDOS、Linux、Menuet等。

密码管理类

围绕用户账号密码安全和管理的软件或者硬件的集合。

开源的密码管理类软件包括Password Safe、PINs等。

个人信息管理类

个人信息管理系统是一种提供个人信息组织管理功能的应用软件。其目的是为了便于记录、跟踪和管理各种个人信息。

开源的个人信息管理类软件有Elephant Memory、KAddressbook、KOrganizer等。

编程语言类

计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。如果按语种分,可以分为英文符号语言和汉语符号语言两类。(典型的如:易语言、易语言.飞扬) 电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。目前通用的编程语言有两种形式:汇编语言和高级语言。

开源的编程语言类软件包括DJGPP、GCC、Open64、Objective CAML、PHP等。

屏幕保护软件

屏幕保护程序是电脑程序,原意是通过将画面空白,或在画面上填满移动的图像,避免电脑显示器在静止的情况下产生磷质烙印,从而减低其寿命。现在,屏幕保护程序被用作娱乐或保安用途。

开源的屏幕保护软件有Flurry、KISS Image Screen Saver、Really Slick Screensavers、xmatrix等。

安全软件

安全软件是一个泛指的概念,细分下来包括杀毒软件、加密软件、防火墙、SSH、其他安全软件。

开源的安全软件包括Open Antivirus、GnuPG、Coyote Linux、OpenSSH、Stunnel等。

其他软件

下面列举一些难于分类的开源软件:

Active2

AstroGrep — 有GUI图形界面的Grep

Autopackage — Linux上的软件包管理系统

BibleTime — 圣经学习软件

Bochs — PC积累器

Cygwin — Win32的开源Unix模拟环境

Link Checker — 检查HTML文档的坏连接

Memtest86 — 内存检查软件

Open Scene Graph

Sun Grid Engine —计算机集群软件

TeX — 排版系统

Vitrite — Windows 2000/XP 上使窗口透明的软件

WINE — 在Linux/BSD上运行Windows软件

XFree86 — 视窗系统

gEDA自动化电器设计工具

GPAI 通用公共人工智能平台


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

原文地址: http://outofmemory.cn/yw/8389205.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存