Программирование в Unix - разархивирование файла программно - PullRequest
3 голосов
/ 26 февраля 2010

Что мне нужно сделать, это разархивировать файл (.gz или .z), прочитать первую строку и выполнить некоторые действия в соответствии с первой прочитанной строкой. Но стандартная библиотека C, кажется, не предлагает способ сделать это.

Является ли независимый от платформы способ сделать это?

Ответы [ 3 ]

11 голосов
/ 26 февраля 2010

Используйте "zlib", библиотеку, которая выполняет сжатие и распаковку:

http://www.zlib.net/

Он включен в базу всех дистрибутивов Unix, и вы можете легко связать свою программу с ней для версии Windows и отправить DLL.

0 голосов
/ 26 февраля 2010

Если вы хотите быть независимым от платформы, вам нужно иметь код разархивирования в вашей программе. Вероятно, вы захотите создать ссылку на стороннюю библиотеку, такую ​​как ZLib , которая является стандартной в системах Unix, или использовать DLL в Windows.

Остальное довольно просто: используйте ZLib, чтобы разархивировать файл во временную папку, прочитайте файл как обычно, затем удалите файл, когда вы закончите.

0 голосов
/ 26 февраля 2010

Библиотеки info-zip являются вполне переносимыми.

...