Как мне распаковать файл, сжатый с помощью fusecompress /lzo?
Вопрос
Я смонтировал fusecompress из каталога compressed / в fusecompress/ Я скопировал большой файл (несколько ГБ) в каталог fusecompress (хорошо, я его отредактировал).Сжатый файл в каталоге compressed/ имеет длину 1,221,396,660.Однако я не могу удалить / распаковать файл.у fusecompress ошибка памяти:"Не удается выделить память".
Можно ли как-нибудь использовать библиотеку lzo для написания процедуры распаковки для сжатого файла?
Я попробовал следующее, но получил ошибку сегментации:
char buffer[OUT_LEN];
char outbuffer[IN_LEN];
int read;
lzo_uint writ;
unsigned long totalWrit = 0;
while( (read = fread( buffer, sizeof(char), OUT_LEN, stdin )) > 0 )
{
r = lzo1x_decompress( buffer, read, outbuffer, &writ, NULL );
fwrite( outbuffer, sizeof(char), writ, stdout );
totalWrit += writ;
}
fprintf( stderr, "\nDone. %d bytes written out.\n\n", totalWrit );
Обновить:
В ответ на запрос билла первые 160 байт файла являются:
00000000 01 1f 01 5d ff 89 04 00 a2 20 85 04 30 6e ba 48 |...]..... ..0n.H| 00000010 00 00 01 02 00 00 00 00 00 00 11 3c 3c 3c 20 53 |...........<<< S| 00000020 75 6e 20 56 69 72 74 75 61 6c 42 6f 78 20 44 69 |un VirtualBox Di| 00000030 73 6b 20 49 6d 61 67 65 20 3e 3e 3e 0a 00 3b 00 |sk Image >>>..;.| 00000040 00 08 7f 10 da be 01 00 01 00 90 01 00 54 00 3b |.............T.;| 00000050 a8 00 20 c9 70 00 02 02 00 00 00 a2 2d b8 03 6c |.. .p.......-..l| 00000060 02 a9 02 80 a9 01 10 b4 01 00 15 28 00 00 52 08 |...........(..R.| 00000070 00 00 a4 15 30 3e 76 22 73 4c 96 3d bf 8f ca 66 |....0>v"sL.=...f| 00000080 a8 93 2b a6 83 65 44 4d 37 41 a4 02 ca bb 56 4e |..+..eDM7A....VN| 00000090 a9 e9 b0 05 39 14 00 05 04 00 00 ff 00 00 00 3f |....9..........?|
Решение
Вы должны посмотреть, как был сжат файл.Заголовок Witch и дополнительные данные хранятся в файле.
Не связан с StackOverflow