Pipes als C++ Streams verwenden
-
Hi,
in der Schule proggen wir grad unter Linux, und wir machen Interprozesskommunikation.
Dabei sollen wir mittels einer Pipe kommunizieren. Ich fände es super, wenn ich diese Pipes wie jeden anderen Stream verwenden könnte.
Beispielsweise so:pipe << 1337;
Geht das mit der C++ Standardbibliothek?
mfg. Tubos
-
Nein, aber mit der Extension __gnu_cxx::stdio_filebuf ist es möglich einen POSIX-Filedescriptor an einen iostream zu bappen.
Muss allerdings sagen (brauchte das kürzlich selbst) dass ich da lieber dabei geblieben bin, mit poll/read/write zu arbeiten, da für mich Namen, die schon mit __ beginnen irgendwo aussagen "intern, könnte sich jederzeit ändern, nicht benutzen, ..."
-
Ok, das klingt ein wenig suspekt.
Außerdem ist es ja nur ein kleines Projekt - wir werden also den Standard-Weg gehen.
Danke.
-
wieso suspekt? stdio_filebuf ist eine stream_buf Spezialisierung, genau wie der C++ Standard das vorsieht.
-
-
@kingruedi:
Wie schon gesagt halte ich die Namen mit __ davor generell seehr vorsichtig. Schon klar dass wenn ich sowas nutze, es nur mit g++ machen kann, ABER...
Wenn solche Namen schon so kryptisch sind, wer sagt mir dass es die Klasse bei der nächsten (vorherigen, ...) GCC-Release überhaupt noch gibt?