Здравствуйте, Зверёк Харьковский, Вы писали:

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

ЗХ>Возможен ли сабж? Т.е. возможно ли создать переменную типа 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;
Автор: Кодт    Оценить