目前,在我國金融界被廣泛地采用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的問題,我們就基本上講解完了。