stdout umleiten ;)
-
Hi,
Ist es möglich stdout OS-unspezifisch in einen buffer (char array) bzw. in den RAM umzuleiten? freopen() verlangt ja nen file-pointer, gibts da vielleicht eine Funktion die einen file-pointer in den RAM oder sowas zurück gibt?
Falls das nicht geht und zufällig jemand bescheid weiß wäre ich einer Lösung für Windows nicht unaufgeschlossen
Besten Dank im voraus
-
Wieviel RAM willst Du bereitstellen? Das kann man irgendiwe nicht beantworten. Perfekt wäre so ein sagen wir mal 4k großer Puffer im RAM, der wie ein File angesprochen werden kann mit write oder WriteFile oder wasauchimmer, und der nur maximal 4k schreiben läßt und bei Überfüllung einfach blockiert. Und ein anderer Thread oder Prozess darf herauslesen und dabei wieder Platz schaffen. Sobald genug weggelesen wurde, wird die Blockade automatisch aufgehoben und der Schreib-Thread läuft normal weiter.
Und ja, das Gips! Das sind Pipes, sowohl unter Linux als auch unter Windows. Oh, schade, Pipes geben zwar gute file descriptors ab, aber nicht FILE*. Zur Not named pipes nehmen, damit der char* klappt? Nee, das muß auch anders gehen. Das macht mich so noch nicht happy.
-
Vielleicht findeste ja noch was was dich glücklich macht, und machst mich dann auch glücklich
-
Niemand eine Idee?