WikiDer > Standardströme
Standardflüsse sind vordefinierte Ein- und Ausgangskanäle (auch Strom genannt) zwischen a Computer Programm und seine Umgebung. Standardflüsse wurden zuerst definiert in UNIX wenn Abstraktion für eine Vielzahl von Peripheriegeräte die in älteren Systemen jeweils ihre eigenen haben Schnittstelle und waren nicht austauschbar. Da die Entwicklung von C ist eng mit der von UNIX die von dieser Sprache verwendeten Definitionen sind zu den üblichen Bezeichnungen geworden. Die drei Ströme, die C definiert, sind stdin ("Standardeingabe"), stdout ("Standardausgabe") und stderr ("Standart Fehler").
- stdin
- Eingang. Kann a Terminal sind, heutzutage immer häufiger a Terminal-Emulator, aber stdin kann auch auf eine Datei verweisen, a Rohr (d. h. die Ausgabe eines anderen Prozesses) oder ein Peripheriegerät, manchmal virtuelle (/dev/zufällig, beispielsweise).
- stdout
- Ausgabe. Auch hier können die Daten an ein (emuliertes) Terminal, aber auch an eine Datei, eine Pipe oder ein Peripheriegerät wie z Bit Bucket (/dev/null).
- stderr
- Fehlermeldungen. Um eine Verwechslung von Diagnosemeldungen mit der regulären Ausgabe zu verhindern, steht ein zusätzlicher Ausgabekanal zur Verfügung. Auch hier kann die Ausgabe an ein Terminal, eine Pipe oder Datei oder ein Peripheriegerät gesendet werden. Die C- und POSIXStandards erfordern, dass dieser Stream ungepuffert ist, damit die Ausgabe sofort geschrieben und nicht gespeichert wird Absturz auftreten, stehen die neuesten Diagnosemeldungen zur Verfügung.
C
Im C sind diese drei teil der Standardbibliothek, da die Originalversion von Brian Kernighan und Dennis Ritchie, die übrigens auch an der Wiege von UNIX stand. Sie sind definiert in stdio.h wenn undurchsichtiger Dateigriff, eine implementierungsabhängige Struktur (undurchsichtig bedeutet "undurchsichtig", der Programmierer kann nicht "sehen"), die Daten über den Fluss enthält. Dadurch muss die Anwendung keine expliziten Kenntnisse über die zugrunde liegende Hard- und Software haben. Dies vereinfacht nicht nur die Programmierung, sondern macht die resultierenden Programme auch flexibler und einfacher zu testen.
fortran
In Fortran werden Dateistreams (bezeichnet als EINHEIT) nummeriert. Drei dieser Nummern sind für die Standardflüsse reserviert. Hiermit gibt man stderr weiter mit 0, stdin mit 5 und stdout mit 6.[1] Das folgende Beispiel liest also eine Zahl aus der Standardeingabe ein und schreibt sie zurück in die Standardausgabe:
CBEISPIELIMFORTRAN77PROGRAMM LESENLESEN(EINHEIT=5,*)NUMMERSCHREIBEN(EINHEIT=6,'(F5.3)')'DIE NUMMER LAUTET:',NUMMERENDEMS-DOS
Im MS-DOS automatisch fünf dieser sogenannten Griffe definiert, als ob fünf Systemgeräte geöffnet wären. Zusätzlich zu den standardmäßigen drei sind dies:
stdaux = 'Hilfsstrom'('Hilfsstrom', geht zum serielle Schnittstelle)[2]
stdprn = Drucker, paralleler Anschluss (LPT1)
Nüsse
- ↑Fortran 77-Sprachreferenz, Kapitel 5 Eingabe und Ausgabe, Orakel, 2010
- ↑Raymond Chen, "Die Bedeutung der Abwärtskompatibilität von Fehlercodes", im Das alte neue Ding (MSDNBlog), 18. Januar 2005