目前,在我国金融界被广泛地采用Unix操作系统以其强大的功能分时、多任务、多用户、网络互连、图形接口等,倍受金融企业青睐。中国农业银行现应用的SCO Unix操作系统 OPENSERVER50更是功能强劲。
各家银行的储蓄、会计、信用卡等计算机业务处理系统均运行在Unix操作系统平台上。电子化的发展拓展了银行的业务领域,提高了工作效率,加强了业务的准确性、保密性、安全性,树立了银行的社会形象,产生间接的经济效益。电子化银行的发展对计算机数据的可靠性提出了更高的要求。
据笔者调查,在Unix操作系统上备份和恢复数据的控制程序决大多数是用tar命令实现的。tar命令具有使用简单好学易用的特点。但笔者在使用tar命令的过程中,发现tar命令对于中国用户具有一个严重的隐患:对文件名为汉字且较长的文件能够归档打包,但不能解开该档案包。
实际应用
本程序使用5个选项 -t -c -v -p -u,每次只能用一个参数,每个参数对应一个功能。
例如:
mtar -v abc 既可修复上面提到的abc包打不开问题。
mtar -v /dev/fd0135ds18可修复tar格式3″软盘。
mtar -c /dev/fd0135ds18可加密tar格式3″软盘。
mtar -v /dev/fd0135ds18可解密tar格式3″软盘。
mtar -t abc可详细列出abc包中文件信息,sum_v=0表示文件属性头校验正常,compress=[1]表示文件抽取时自动解压缩。
本程序从编写至今笔者进行了十四次改版,使该程序适合含任何文件类型的tar档案包。并在SCO Unix操作系统 3242和SCO OPENSERVER 50下多次进行编译和全面功能测试。现将该程序整理出来,敬请同行多加指教。源程序附后。
- Mtar.c内容如下:
- #define TBLOCK 512
- #define NBLOCK 20
- #define NAMSIZ 100
- char dummy[TBLOCK]
- char name[NAMSIZ]
- char linkname[NAMSIZ]
- mainargc,argv
- FILE*fp
- printf″Usage:mtar-[c,v,t,p,u]tarfile\n″
- iffp=fopenargv[2],″r+″==NULL
- printf″Can not open the %s\n″,argv[2]
- iffreaddblock.dummy,TBLOCK,1,fp!=1
- printf″Can not read the%s !\n″,argv[2]
- fori=0i TBLOCKi++ sumsum=sum+dblock.dumm
- fori=0i NAMSIZi++{
- seekip=fseekfp,-TBLOCK,SEEK_CUR
我们对Unix操作系统中tar的实用例子就讲解到这里,对tar的问题,我们就基本上讲解完了。
【编辑推荐】