Wie funktionieren C++ Stream?



  • Hallo,

    ich wueder gerne wissen wie C++ Streams funktonieren? Zum Beispiel:

    std::cout << "Hello World!" << std::endl;
    

    Was passiert genau mit "Hello World", wohin wird es geschrieben damit es bei mir auf dem Bildschirm erscheint?
    Welche Datenstruktur benutzt ein C++ Stream intern? Und kann es sein das irgendwann kein Speicherplatz mehr vorhanden ist im Stream?

    Vielen Dank,
    Query



  • Query schrieb:

    Hallo,

    ich wueder gerne wissen wie C++ Streams funktonieren? Zum Beispiel:

    std::cout << "Hello World!" << std::endl;
    

    Was passiert genau mit "Hello World", wohin wird es geschrieben damit es bei mir auf dem Bildschirm erscheint?

    In eine "Datei", die das Betriebssystems bereitstellt. Also es fühlt sich an wie eine Datei, in die man reinschreiben kann. Und was man reinschreibt, erscheiunt auf dem Bildschirm.

    Query schrieb:

    Welche Datenstruktur benutzt ein C++ Stream intern?

    Im Wersentlichen nur einen Puffer von z.B. 2048 Bytes Größe und ein Dateihandle. Es wird immer hübsch nur in den Puffer geschrieben, bis er voll ist. Ist er voll, werden 2048 Bytes auf einmal an die Datei geschickt. Das reduziert die Betriebssystemaufrufe, die sind lahm.

    Query schrieb:

    Und kann es sein das irgendwann kein Speicherplatz mehr vorhanden ist im Stream?

    Nö, wenn der Puffer voll ist, wird ja rausgeschrieben. Der Puffer von cout ist übrigens normalerweise abgeschaltet.



  • nicht



  • Vielen Dank fuer die Erklaerungen! Wo findet man eine >>einfache<< Implementierung von einem C++ Stream?



  • Query schrieb:

    Wo findet man eine >>einfache<< Implementierung von einem C++ Stream?

    Gibt es nicht. Lerne wie sie funktionieren, in dem du einfach C++ lernst. Zudem wäre
    Standard C++ IOStreams and Locales | ISBN: 0321585585
    nicht schlecht, haben ich und andere hier auch.

    Falls du eine richtige Implementierung sehen willst, guck' dir mal die Header von einem Compiler an.




Anmelden zum Antworten