Wie stdout-Puffer in den Speicher und schreiben Sie es von einem dedizierten thread

Ich habe eine C-Anwendung mit vielen worker-threads. Es ist wichtig, dass diese nicht blockieren, also wo die worker-threads schreiben müssen, um eine Datei auf der Festplatte, ich habe Sie schreiben ein Ringpuffer im Speicher, und haben dann ein eigener thread für das schreiben, die Puffer auf der Festplatte.

Den worker-threads blockieren Sie keine mehr. Der dedizierte thread kann sicher blockiert während des Schreibens auf der Festplatte, ohne die worker-threads (es werden nicht die Sperre beim schreiben auf die Festplatte). Meine Speicher-Puffer eingestellt ist, ausreichend groß bemessen sein, dass der writer-thread mithalten kann.

Diesem funktioniert alles Super. Meine Frage ist, wie Binde ich etwas ähnliches für stdout?

Konnte ich makro printf() zum schreiben in einen Speicher-Puffer, aber ich habe keine Kontrolle über den code, der vielleicht nach stdout schreiben (teilweise ist es in third-party-Bibliotheken).

Gedanken?
NickB

InformationsquelleAutor der Frage NickB | 2009-06-05

Schreibe einen Kommentar