Frage

Ich habe ein Programm, das * cgiOut in eine Datei schreibt und nur, nachdem es in den Stream geschrieben hat, ich brauche einen Hintergrundprozess gabeln und auszuführen. Das Problem ist, dass nach der Gabel, der FILE * stream manchmal zu spülen scheint und ich bekomme Ausgang dupliziert (nach der Gabel, alle offenen Dateien geschlossen sind, die ich denke, Ursachen die Puffer gespült werden). Wie kann ich das vermeiden? Ich möchte nicht, die Datei in dem Master-Prozess schließen, wie es in einer Bibliothek geöffnet wird, und es ist eine Buchse oder ein Rohr, denke ich.

War es hilfreich?

Lösung

Nicht ganz sicher, ob ich verstehe Ihre Frage, aber wenn Sie sicher Puffer sind Ihre cgiOut machen wollen leer ist, bevor Sie fork() Sie fflush() im Stream verwenden können, kurz bevor Sie fork(). Das sollte die Puffer erzwingen gespült werden.

Es ist vielleicht geeignet, einen ungepufferten Strom zu verwenden, indem Sie die Puffereinstellungen über setvbuf() und Freunde zu verändern. Auf diese Weise werden Sie nicht. (Sprich: nicht) keine Pufferung Probleme haben, aber es könnte nicht sein, was Sie wollen

Andere Tipps

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top