Я использую libzip для работы с zip-файлами, и все идет нормально, пока мне не понадобится читать файл из архива
Мне нужно читать только целые текстовые файлы, поэтому было бы здорово получить что-то вроде функции PHP "file_get_contents".
Для чтения файла из zip есть функция
"int
zip_fread (struct zip_file * file, void * buf, zip_uint64_t nbytes) ".
Основная проблема в том, что я не знаю, какой размер buf должен быть и сколько nbytes я должен прочитать (ну, мне нужно прочитать весь файл, но файлы имеют другой размер). Я могу просто сделать большой буфер, чтобы вместить их все и прочитать весь его размер, или выполнить цикл while до тех пор, пока fread не вернет -1, но я не думаю, что это рациональный вариант.