.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1990, 1991 Regents of the University of California. .\" All rights reserved. .\" .\" %%%LICENSE_START(BSD_4_CLAUSE_UCB) .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" %%%LICENSE_END .\" .\" @(#)stdio.3 6.5 (Berkeley) 5/6/91 .\" .\" Converted for Linux, Mon Nov 29 16:07:22 1993, faith@cs.unc.edu .\" Modified, 2001-12-26, aeb .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH STDIO 3 "26. November 2017" "" Linux\-Programmierhandbuch .SH BEZEICHNUNG stdio \- Standardein\-/\-ausgabe\-Bibliotheksfunktionen .SH ÜBERSICHT \fB#include \fP .PP \fBFILE *\fP\fIstdin\fP\fB;\fP .br \fBFILE *\fP\fIstdout\fP\fB;\fP .br \fBFILE *\fP\fIstderr\fP\fB;\fP .SH BESCHREIBUNG Die Standard\-E/A\-Bibliothek stellt eine einfache und effiziente E/A\-Schnittstelle für gepufferte Datenströme zur Verfügung. Ein\- und Ausgabe werden als logische Datenströme dargestellt und physikalische E/A\-Charakteristiken werden verborgen. Die Funktionen und Makros sind im Folgenden aufgelistet; weitere Informationen sind auf den verschiedenen Handbuchseiten verfügbar. .PP Ein Datenstrom wird mit einer externen Datei (die ein physikalisches Gerät sein kann) verbunden, indem eine Datei \fIgeöffnet\fP wird, was das Erzeugen einer neuen Datei beinhaltet. Eine bestehende Datei zu erzeugen, verwirft ihren bisherigen Inhalt. Wenn die Datei Positionierungsänderungen unterstützt (wie eine Datei auf einer Festplatte, im Gegensatz zu einem Terminal), dann wird ein \fIDateipositionszeiger\fP mit dem Datenstrom verbunden und auf den Anfang der Datei positioniert (nulltes Byte), außer wenn die Datei im Anhänge\-Modus geöffnet wurde. Im Anhänge\-Modus ist es nicht spezifiziert, ob der Positionsanzeiger auf den Anfang oder das Ende der Datei platziert wird. Der Positionszeiger wird durch nachfolgende Lese\-, Schreib\- und Positionierungszugriffe bewegt. Jede Eingabe wird so eingelesen, als ob die Funktion \fBfgetc\fP(3) für jedes Zeichen einzeln aufgerufen worden wäre. Die Ausgabe erfolgt, als würde jedes Zeichen einzeln durch die Funktion \fBfputc\fP(3) geschrieben. .PP Eine Datei wird von einem Datenstrom durch \fISchließen\fP der Datei gelöst. Ausgabedatenströme werden geleert (noch nicht geschriebener Pufferinhalt wird auf den Rechner übertragen) bevor der Datenstrom von der Datei getrennt wird. Der Wert eines Zeigers auf ein \fIFILE\fP Objekt ist nicht mehr gültig, nachdem die Datei geschlossen wurde (Müll). .PP Eine Datei kann nachfolgend durch das selbe oder ein anderes Programm wieder geöffnet und ihr Inhalt zurückgelesen oder verändert werden (falls sie auf den Anfang zurückpositioniert werden kann). Wenn die Hauptfunktion zum ursprünglich Aufrufenden zurückkehrt oder die Funktion \fBexit\fP(3) aufgerufen wird, werden alle offenen Dateien vor Programmende geschlossen (nachdem alle Ausgabedatenströme herausgeschrieben wurden). Andere Methoden zur Beendigung von Programmen, wie \fBabort\fP(3), kümmern sich nicht um das korrekte Schließen von Dateien. .PP Bei Programmstart sind drei Textdatenströme vordefiniert und brauchen nicht explizit geöffnet zu werden: \fIStandardeingabe\fP (zum Lesen konventioneller Eingabe), \fIStandardausgabe\fP (zum Schreiben konventioneller Ausgabe) und \fIStandardfehlerausgabe\fP (zum Schreiben der Diagnoseausgabe). Diese Datenströme werden abgekürzt durch \fIstdin\fP,\fIstdout\fP und \fIstderr\fP. Der Datenstrom der Standardfehlerausgabe ist nicht vollständig gepuffert, wenn er geöffnet ist; die Datenströme der Standardein\- und \-ausgabe sind nur dann vollständig gepuffert, wenn die Datenströme nicht auf ein interaktives Gerät verweisen. .PP Ausgabedatenströme, die auf Terminalgeräte verweisen, sind standardmäßig zeilengepuffert. Noch ausstehende Ausgaben zu solchen Datenströmen werden automatisch geschrieben, wann immer aus einem Eingabedatenstrom gelesen wird, der sich auf ein Terminalgerät bezieht. Falls nach einer Ausgabe viel gerechnet wird, ist es notwendig, \fBfflush\fP(3) vor der Rechnung aufzurufen, damit die Ausgabe erscheint. .PP Die Bibliothek \fBstdio\fP ist Teil der Bibliothek \fBlibc\fP und die Routinen werden von \fBcc\fP(1) nach Bedarf geladen. Die Abschnitte ÜBERSICHT der folgenden Handbuchseiten zeigen, welche Include\-Dateien zu benutzen sind, wie die Deklaration für die Funktion aussieht und welche externen Variablen interessant sind. .PP .\" Not on Linux: .BR fropen , .\" Not on Linux: .BR fwopen , Die folgenden Namen sind als Makros definiert. Sie dürfen nicht wiederbenutzt werden ohne ihre vorherigen Definitionen vorher mit \fB#undef\fP zu entfernen: \fBBUFSIZ\fP, \fBEOF\fP, \fBFILENAME_MAX\fP, \fBFOPEN_MAX\fP, \fBL_cuserid\fP, \fBL_ctermid\fP, \fBL_tmpnam\fP, \fBNULL\fP, \fBSEEK_END\fP, \fBSEEK_SET\fP, \fBSEEK_CUR\fP, \fBTMP_MAX\fP, \fBclearerr\fP, \fBfeof\fP, \fBferror\fP, \fBfileno\fP, \fBgetc\fP, \fBgetchar\fP, \fBputc\fP, \fBputchar\fP, \fBstderr\fP, \fBstdin\fP, \fBstdout\fP. Von den Makrofunktionen \fBfeof\fP, \fBferror\fP, \fBclearerr\fP, \fBfileno\fP, \fBgetc\fP, \fBgetchar\fP, \fBputc\fP und \fBputchar\fP existieren Funktionsversionen. Diese werden benutzt, wenn die Makrodefinitionen explizit entfernt werden. .SS "Liste der Bibliotheksfunktionen" .TS ; lb lb l l. Funktion Beschreibung _ \fBclearerr\fP(3) Status des Datenstroms prüfen und zurücksetzen \fBfclose\fP(3) Datenstrom schließen \fBfdopen\fP(3) Funktionen zum Öffnen eines Datenstroms \fBfeof\fP(3) Status des Datenstroms prüfen und zurücksetzen \fBferror\fP(3) Status des Datenstroms prüfen und zurücksetzen \fBfflush\fP(3) Datenstrom herausschreiben \fBfgetc\fP(3) nächstes Zeichen oder Wort aus dem Eingabedatenstrom einlesen \fBfgetpos\fP(3) einen Datenstrom neu positionieren \fBfgets\fP(3) eine Zeile aus dem Datenstrom einlesen \fBfileno\fP(3) den Ganzzahldeskriptor eines Argumentdatenstroms zurückgeben \fBfopen\fP(3) Funktionen zum Öffnen eines Datenstroms \fBfprintf\fP(3) formatierte Ausgabeumwandlung \fBfpurge\fP(3) Datenstrom herausschreiben \fBfputc\fP(3) ein Zeichen oder Wort in einen Datenstrom ausgeben \fBfputs\fP(3) eine Zeile in einen Datenstrom ausgeben \fBfread\fP(3) binäre Datenstromein\-/\-ausgabe \fBfreopen\fP(3) Funktionen zum Öffnen eines Datenstroms \fBfscanf\fP(3) formatbasierte Eingabeumwandlung \fBfseek\fP(3) einen Datenstrom neu positionieren \fBfsetpos\fP(3) einen Datenstrom neu positionieren \fBftell\fP(3) einen Datenstrom neu positionieren \fBfwrite\fP(3) binäre Datenstromein\-/\-ausgabe \fBgetc\fP(3) nächstes Zeichen oder Wort aus dem Eingabedatenstrom einlesen \fBgetchar\fP(3) nächstes Zeichen oder Wort aus dem Eingabedatenstrom einlesen \fBgets\fP(3) eine Zeile aus dem Datenstrom einlesen \fBgetw\fP(3) nächstes Zeichen oder Wort aus dem Eingabedatenstrom einlesen \fBmktemp\fP(3) einen (eindeutigen) temporären Dateinamen erzeugen \fBperror\fP(3) Systemfehlermeldungen \fBprintf\fP(3) formatierte Ausgabeumwandlung \fBputc\fP(3) ein Zeichen oder Wort in einen Datenstrom ausgeben \fBputchar\fP(3) ein Zeichen oder Wort in einen Datenstrom ausgeben \fBputs\fP(3) eine Zeile in einen Datenstrom ausgeben \fBputw\fP(3) ein Zeichen oder Wort in einen Datenstrom ausgeben \fBremove\fP(3) einen Verzeichniseintrag löschen \fBrewind\fP(3) einen Datenstrom neu positionieren \fBscanf\fP(3) formatbasierte Eingabeumwandlung \fBsetbuf\fP(3) Datenstrom\-Puffereinstellungen \fBsetbuffer\fP(3) Datenstrom\-Puffereinstellungen \fBsetlinebuf\fP(3) Datenstrom\-Puffereinstellungen \fBsetvbuf\fP(3) Datenstrom\-Puffereinstellungen \fBsprintf\fP(3) formatierte Ausgabeumwandlung \fBsscanf\fP(3) formatbasierte Eingabeumwandlung \fBstrerror\fP(3) Systemfehlermeldungen \fBsys_errlist\fP(3) Systemfehlermeldungen \fBsys_nerr\fP(3) Systemfehlermeldungen \fBtempnam\fP(3) Routinen für temporäre Dateien \fBtmpfile\fP(3) Routinen für temporäre Dateien \fBtmpnam\fP(3) Routinen für temporäre Dateien \fBungetc\fP(3) Zeichen zurück in den Eingabedatenstrom geben \fBvfprintf\fP(3) formatierte Ausgabeumwandlung \fBvfscanf\fP(3) formatbasierte Eingabeumwandlung \fBvprintf\fP(3) formatierte Ausgabeumwandlung \fBvscanf\fP(3) formatbasierte Eingabeumwandlung \fBvsprintf\fP(3) formatierte Ausgabeumwandlung \fBvsscanf\fP(3) formatbasierte Eingabeumwandlung .TE .SH "KONFORM ZU" Die Bibliothek \fBstdio\fP ist zu C89 konform. .SH "SIEHE AUCH" \fBclose\fP(2), \fBopen\fP(2), \fBread\fP(2), \fBwrite\fP(2), \fBstdout\fP(3), \fBunlocked_stdio\fP(3) .SH KOLOPHON Diese Seite ist Teil der Veröffentlichung 4.16 des Projekts Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter \%https://www.kernel.org/doc/man\-pages/. .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother , Chris Leick und Mario Blättermann erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an .