Kann ich einen Aufruf von open_memstream durch einen Malloc und eine implizite Besetzung ersetzen?

Alles,

Ich habe ein Programm, das in einen Stream druckt. Ich muss diesen Stream im Speicher puffern und dann jede Zeile nach Bedarf später in eine tatsächliche Datei drucken.

Seit derfprintf() Funktionsaufrufe müssen einFILE * Zeiger, ich muss den Zeiger Adressraum im Speicher haben. Ich hatte das benutztopen_memstream() Funktion, aber dies wird unter Windows nicht unterstützt.

Schon seitmalloc() gibt a zurückvoid * Zeiger, der nach Bedarf auf magische Weise auf den erforderlichen Zeiger zeigtFILE * Zeiger? Wenn ja, welche Vorbehalte gibt es? Muss ich auf Platzmangel achten?

Aktualisieren:

Nach dem Finden der Quelle füropen_memstream(), was schwieriger war als es hätte sein sollen, es sieht so aus, als würden sie einen Dateistream zum Speicherplatz auf der Malloc machen.

Da dies der Fall ist und ich ihre Quelle habe, werde ich sehen, ob ich keine funktionierende Version zum Cross-Kompilieren für Windows mit mingw bekommen kann.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage