2010-02-26 107 views
3

我需要做的是解壓縮文件(.gz或.z),讀取第一行並根據第一行讀取一些內容。但C標準庫似乎沒有提供這樣做的方法。Unix系統編程 - 以編程方式解壓縮文件

是否與平臺無關?

+0

只是使用gzip和gunzip – Malfist 2010-02-26 17:21:50

+1

是不是更適合bash腳本再次C代碼的任務? – 2010-02-26 17:22:56

回答

11

使用「的zlib」,執行壓縮和解壓庫:

http://www.zlib.net/

它包含在所有的Unix發行版的基礎上,你可以輕鬆地反對它鏈接程序的Windows版本和運送DLL。

0

如果你想平臺獨立,你必須在你的程序中有解壓縮代碼。很可能,您希望鏈接到第三方庫,例如Unix系統上標準的ZLib,或者在Windows上使用DLL

其餘的很簡單:使用ZLib將文件解壓縮到臨時位置,按正常方式讀取文件,然後在完成後刪除文件。

+1

你甚至不需要臨時文件; zlib允許您在內存中壓縮/解壓縮流。 – ephemient 2010-02-26 17:35:02

+0

內存中的東西比擺弄臨時文件更快嗎? – helpermethod 2010-02-27 09:51:45

相關問題