Pracuję z niektórych starszych kod, który wykorzystuje mniej więcej tak:Utwórz mapę strukturalną PLIKU * do bufora?
void store_data(FILE *file);
Jednak nie chcę, aby zapisać dane na dysku, chcę zapisać go w pamięci (char *buf
). Mógłbym edytować cały kod, ale kod przeskakuje w każdym miejscu i fwrite
zostaje wywołany w pliku w całym miejscu. Czy istnieje prostszy sposób, na przykład, że mogę zmapować obiekt FILE*
do bufora (automatycznie rosnącego)? Nie wiem, całkowity rozmiar danych przed ręką.
Rozwiązanie musi być przenośne.
Czy rury mogą być opcją? – orlp
Rury również nie są w standardzie C. Na Unixie, tak, możesz mieć pętlę potoku z powrotem do innego wątku w tym samym procesie, który napisał do bufora pamięci. W systemie Windows teoretycznie można zrobić to samo, ale spodziewałbym się, że będzie to źródło niekończącego się żalu, a nawet na Uniksie uderza mnie to za dużo pracy, ponieważ nie ma większego pożytku z podejścia 'tmpfile'. – zwol