当前位置--> 首 页 --> 文 章 -->Linux Develop

※阅读文章※

Linux程式设计-16.TarBall


作者:不祥 [文章出自: www.fanqiang.com]


我写了一个targz的函数库,专门处理档案安装的事宜,这个函数库在我写的X Corona Package Installer中使用到。它与zlib一起使用。 
targz.h 
targz.c 



--------------------------------------------------------------------------------

typedef struct { 
  char name[100]; 
  char mode[8]; 
  char uid[8]; 
  char gid[8]; 
  char size[12]; 
  char mtime[12]; 
  char chksum[8]; 
  char typeflag; 
  char linkname[100]; 
  char magic[6]; 
  char version[2]; 
  char uname[32]; 
  char gname[32]; 
  char devmajor[8]; 
  char devminor[8]; 
  char prefix[155]; 
} TarEntry; 
  
GNU Tar档案格式 



--------------------------------------------------------------------------------

typedef struct { 
  char *      Package; 
  char *      FileName; 
  char *      path; 
  gzFile      fp; 
  int         size; 
  int         totalsize; 
  int         expanding; 
  int         mode; 
  int         result; 
  TarEntry ** NAME; 
} TarBall; 
  


--------------------------------------------------------------------------------

TarBall * tgzOpen(char * Filename,char * mode); 
开启一个tarball档,档名为Filename。 
mode 
"r":为读取模式。 
"w":为写入模式。 



--------------------------------------------------------------------------------

int       tgzLookup(TarBall * tgz); 
撷取tarball内档案资讯。 



--------------------------------------------------------------------------------

int       tgzClose(TarBall * tgz); 
关闭tarball档。 



--------------------------------------------------------------------------------

int       tgzExpand(TarBall * tgz); 
解开档案。 



--------------------------------------------------------------------------------

int       tgzSkip(TarBall * tgz); 
  
跳过下一个档案,不安装。 



--------------------------------------------------------------------------------

int       tgzAppend(TarBall * tgz,char *FileName); 
新增档案到tarball中,必须要是Write Mode。 

文章加入时间: 2004-11-17 14:56:34 责任编辑: w9   (2382 人次查阅)
 
Copyright © 1998-2004 中国PHP联盟 All rights reserved.