estoy trabajando con un poco de código heredado que usa algo como esto:¿Hacer FILE * struct map a un buffer?
void store_data(FILE *file);
Sin embargo, yo no quiero para almacenar los datos en el disco, quiero almacenarlo en la memoria (char *buf
). Podría editar todo el código, pero el código salta por todas partes y se llama al archivo fwrite
en todo el lugar. Entonces, ¿hay una manera más fácil, por ejemplo, de que pueda asignar un objeto FILE*
a un búfer (de crecimiento automático)? No sé el tamaño total de los datos de antemano.
La solución debe ser portátil.
¿Las tuberías son una opción? – orlp
Las tuberías tampoco están en el estándar C. En Unix, sí, podría tener un lazo de tubería a otro hilo en el mismo proceso que escribió en un búfer de memoria. En Windows, teóricamente puedes hacer lo mismo, pero esperaría que sea una fuente de dolor interminable, e incluso en Unix esto me parece demasiado trabajo para no obtener demasiada ganancia sobre el enfoque 'tmpfile'. – zwol