FILE* в памяти
От: Кодт Россия  
Дата: 06.04.05 13:18
Оценка: 156 (17)
#Имя: FAQ.cpp.fileinmemory
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>В меру идиотский вопрос.

ЗХ>Возможен ли сабж? Т.е. возможно ли создать переменную типа FILE*, чтобы все fwrite в нее на самом деле писали в буфер в памяти?

ЗХ>нужен JEPG в памяти; а libjpeg, зараза, либо через FILE*, либо какой-то кошмарный геморрой.


Да, возможно.
sprintf/sscanf именно так и делают.
Правда, вряд ли это кроссплатформенное решение — в разных системах поля FILE могут различаться.
void* yourdata;
int yoursize;

FILE file;
// VC6, подсмотрено в sscanf.c
file._flag = _IOREAD|_IOSTRG|_IOMYBUF;
file._ptr = file._base = (char *) yourdata;
file._cnt = yoursize;

FILE* fp = &file;
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.