«Нужно прочитать .zip файл, и после нужно использовать файлы из него.» читайте внимательно. Нужно файлы читать а не распаковывать, то есть чтобы читать из архива фотографии и отображать их в OpenGL например
Формулируйте точнее и учите пунктуацию. «Читать» файлы из архива вообще нельзя, потому что нет там никаких файлов, а есть сжатые данные, которые можно распаковать.
Но как мне их использовать без распаковки? Или на момент запуска программы она должна распаковать временно, а потом удалить файлы, или возможна распаковка в Оперативную память?
extern int ZEXPORT unzLocateFile OF((unzFile file,
const char *szFileName,
int iCaseSensitivity));
/*
Try locate the file szFileName in the zipfile.
For the iCaseSensitivity signification, see unzStringFileNameCompare
return value :
UNZ_OK if the file is found. It becomes the current file.
UNZ_END_OF_LIST_OF_FILE if the file is not found
*/
extern int ZEXPORT unzOpenCurrentFile OF((unzFile file));
/*
Open for reading data the current file in the zipfile.
If there is no error, the return value is UNZ_OK.
*/
extern int ZEXPORT unzReadCurrentFile OF((unzFile file,
voidp buf,
unsigned len));
/*
Read bytes from the current file (opened by unzOpenCurrentFile)
buf contain buffer where data must be copied
len the size of buf.
return the number of byte copied if somes bytes are copied
return 0 if the end of file was reached
return <0 with error code if there is an error
(UNZ_ERRNO for IO error, or zLib error for uncompress error)
*/
Имхо, у вас вялый спор ни о чем. Данные там или файл - вопрос чисто понятийный. Что считать файлом? Согласно википедии, например, файл обязан храниться на материальном носителе. Но /dev/null, например, традиционно считается файлом. А если тот же архив смонтировать как FUSE ФС? Станут ли те самые сжатые данные файлами?