stdio(3) Library Functions Manual stdio(3) BEZEICHNUNG stdio - Standardein-/-ausgabe-Bibliotheksfunktionen BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include FILE *stdin; FILE *stdout; FILE *stderr; BESCHREIBUNG Die Standard-E/A-Bibliothek stellt eine einfache und effiziente E/A-Schnittstelle fur gepufferte Datenstrome zur Verfugung. Ein- und Ausgabe werden als logische Datenstrome dargestellt und physikalische E/A-Charakteristiken werden verborgen. Die Funktionen und Makros sind im Folgenden aufgelistet; weitere Informationen sind auf den verschiedenen Handbuchseiten verfugbar. Ein Datenstrom wird mit einer externen Datei (die ein physikalisches Gerat sein kann) verbunden, indem eine Datei geoffnet wird, was das Erzeugen einer neuen Datei beinhaltet. Eine bestehende Datei zu erzeugen, verwirft ihren bisherigen Inhalt. Wenn die Datei Positionierungsanderungen unterstutzt (wie eine Datei auf einer Festplatte, im Gegensatz zu einem Terminal), dann wird ein Dateipositionszeiger mit dem Datenstrom verbunden und auf den Anfang der Datei positioniert (nulltes Byte), ausser wenn die Datei im Anhange-Modus geoffnet wurde. Im Anhange-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 fgetc(3) fur jedes Zeichen einzeln aufgerufen worden ware. Die Ausgabe erfolgt, als wurde jedes Zeichen einzeln durch die Funktion fputc(3) geschrieben. Eine Datei wird von einem Datenstrom durch Schliessen der Datei gelost. Ausgabedatenstrome werden geleert (noch nicht geschriebener Pufferinhalt wird auf den Rechner ubertragen) bevor der Datenstrom von der Datei getrennt wird. Der Wert eines Zeigers auf ein FILE Objekt ist nicht mehr gultig, nachdem die Datei geschlossen wurde (Mull). Eine Datei kann nachfolgend durch das selbe oder ein anderes Programm wieder geoffnet und ihr Inhalt zuruckgelesen oder verandert werden (falls sie auf den Anfang zuruckpositioniert werden kann). Wenn die Hauptfunktion zum ursprunglich Aufrufenden zuruckkehrt oder die Funktion exit(3) aufgerufen wird, werden alle offenen Dateien vor Programmende geschlossen (nachdem alle Ausgabedatenstrome herausgeschrieben wurden). Andere Methoden zur Beendigung von Programmen, wie abort(3), kummern sich nicht um das korrekte Schliessen von Dateien. Bei Programmstart sind drei Textdatenstrome vordefiniert und brauchen nicht explizit geoffnet zu werden: Standardeingabe (zum Lesen konventioneller Eingabe), Standardausgabe (zum Schreiben konventioneller Ausgabe) und Standardfehlerausgabe (zum Schreiben der Diagnoseausgabe). Diese Datenstrome werden abgekurzt durch stdin,stdout und stderr. Der Datenstrom der Standardfehlerausgabe ist nicht vollstandig gepuffert, wenn er geoffnet ist; die Datenstrome der Standardein- und -ausgabe sind nur dann vollstandig gepuffert, wenn die Datenstrome nicht auf ein interaktives Gerat verweisen. Ausgabedatenstrome, die auf Terminalgerate verweisen, sind standardmassig zeilengepuffert. Noch ausstehende Ausgaben zu solchen Datenstromen werden automatisch geschrieben, wann immer aus einem Eingabedatenstrom gelesen wird, der sich auf ein Terminalgerat bezieht. Falls nach einer Ausgabe viel gerechnet wird, ist es notwendig, fflush(3) vor der Rechnung aufzurufen, damit die Ausgabe erscheint. Die Bibliothek stdio ist Teil der Bibliothek libc und die Routinen werden von cc(1) nach Bedarf geladen. Die Abschnitte UBERSICHT der folgenden Handbuchseiten zeigen, welche Include-Dateien zu benutzen sind, wie die Deklaration fur die Funktion aussieht und welche externen Variablen interessant sind. Die folgenden Namen sind als Makros definiert. Sie durfen nicht wiederbenutzt werden ohne ihre vorherigen Definitionen vorher mit #undef zu entfernen: BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_cuserid, L_ctermid, L_tmpnam, NULL, SEEK_END, SEEK_SET, SEEK_CUR, TMP_MAX, clearerr, feof, ferror, fileno, getc, getchar, putc, putchar, stderr, stdin, stdout. Von den Makrofunktionen feof, ferror, clearerr, fileno, getc, getchar, putc und putchar existieren Funktionsversionen. Diese werden benutzt, wenn die Makrodefinitionen explizit entfernt werden. Liste der Bibliotheksfunktionen Funktion Beschreibung ------------------------------------------------------------------------ clearerr(3) Status des Datenstroms prufen und zurucksetzen fclose(3) Datenstrom schliessen fdopen(3) Funktionen zum Offnen eines Datenstroms feof(3) Status des Datenstroms prufen und zurucksetzen ferror(3) Status des Datenstroms prufen und zurucksetzen fflush(3) Datenstrom herausschreiben fgetc(3) nachstes Zeichen oder Wort aus dem Eingabedatenstrom einlesen fgetpos(3) einen Datenstrom neu positionieren fgets(3) eine Zeile aus dem Datenstrom einlesen fileno(3) den Ganzzahldeskriptor eines Argumentdatenstroms zuruckgeben fmemopen(3) Speicher als Datenstrom offnen fopen(3) Funktionen zum Offnen eines Datenstroms fopencookie(3) einen angepassten Datenstrom offnen fprintf(3) formatierte Ausgabeumwandlung fpurge(3) Datenstrom herausschreiben fputc(3) ein Zeichen oder Wort in einen Datenstrom ausgeben fputs(3) eine Zeile in einen Datenstrom ausgeben fread(3) binare Datenstromein-/-ausgabe freopen(3) Funktionen zum Offnen eines Datenstroms fscanf(3) formatbasierte Eingabeumwandlung fseek(3) einen Datenstrom neu positionieren fsetpos(3) einen Datenstrom neu positionieren ftell(3) einen Datenstrom neu positionieren fwrite(3) binare Datenstromein-/-ausgabe getc(3) nachstes Zeichen oder Wort aus dem Eingabedatenstrom einlesen getchar(3) nachstes Zeichen oder Wort aus dem Eingabedatenstrom einlesen gets(3) eine Zeile aus dem Datenstrom einlesen getw(3) nachstes Zeichen oder Wort aus dem Eingabedatenstrom einlesen mktemp(3) einen (eindeutigen) temporaren Dateinamen erzeugen open_memstream(3) einen dynamischen Speicher-Puffer-Datenstrom offnen open_wmemstream(3) einen dynamischen Speicher-Puffer-Datenstrom offnen perror(3) Systemfehlermeldungen printf(3) formatierte Ausgabeumwandlung putc(3) ein Zeichen oder Wort in einen Datenstrom ausgeben putchar(3) ein Zeichen oder Wort in einen Datenstrom ausgeben puts(3) eine Zeile in einen Datenstrom ausgeben putw(3) ein Zeichen oder Wort in einen Datenstrom ausgeben remove(3) einen Verzeichniseintrag loschen rewind(3) einen Datenstrom neu positionieren scanf(3) formatbasierte Eingabeumwandlung setbuf(3) Datenstrom-Puffereinstellungen setbuffer(3) Datenstrom-Puffereinstellungen setlinebuf(3) Datenstrom-Puffereinstellungen setvbuf(3) Datenstrom-Puffereinstellungen sprintf(3) formatierte Ausgabeumwandlung sscanf(3) formatbasierte Eingabeumwandlung strerror(3) Systemfehlermeldungen sys_errlist(3) Systemfehlermeldungen sys_nerr(3) Systemfehlermeldungen tempnam(3) Routinen fur temporare Dateien tmpfile(3) Routinen fur temporare Dateien tmpnam(3) Routinen fur temporare Dateien ungetc(3) Zeichen zuruck in den Eingabedatenstrom geben vfprintf(3) formatierte Ausgabeumwandlung vfscanf(3) formatbasierte Eingabeumwandlung vprintf(3) formatierte Ausgabeumwandlung vscanf(3) formatbasierte Eingabeumwandlung vsprintf(3) formatierte Ausgabeumwandlung vsscanf(3) formatbasierte Eingabeumwandlung STANDARDS C11, POSIX.1-2008. GESCHICHTE C89, POSIX.1-2001. SIEHE AUCH close(2), open(2), read(2), write(2), stdout(3), unlocked_stdio(3) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Patrick Rother , Chris Leick , Mario Blattermann und Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 29. Dezember 2023 stdio(3)