BEZEICHNUNG¶
stdio - Standardein-/-ausgabe-Bibliotheksfunktionen
ÜBERSICHT¶
#include <stdio.h>
FILE *stdin;
 
FILE *stdout;
 
FILE *stderr;
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.
Ein Datenstrom wird mit einer externen Datei (die ein physikalisches
  Gerät sein kann) verbunden, indem eine Datei 
geöffnet
  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
  
Dateipositionszeiger 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 
fgetc(3) für jedes Zeichen einzeln
  aufgerufen worden wäre. Die Ausgabe erfolgt, als würde jedes
  Zeichen einzeln durch die Funktion 
fputc(3) geschrieben.
Eine Datei wird von einem Datenstrom durch 
Schließen 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
  
FILE Objekt ist nicht mehr gültig, nachdem die Datei geschlossen
  wurde (Müll).
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 
exit(3) aufgerufen wird, werden alle offenen Dateien vor
  Programmende geschlossen (nachdem alle Ausgabedatenströme
  herausgeschrieben wurden). Andere Methoden zur Beendigung von Programmen, wie
  
abort(3), kümmern sich nicht um das korrekte Schließen
  von Dateien.
Bei Programmstart sind drei Textdatenströme vordefiniert und brauchen
  nicht explizit geöffnet zu werden: 
Standardeingabe (zum Lesen
  konventioneller Eingabe), 
Standardausgabe (zum Schreiben
  konventioneller Ausgabe) und 
Standardfehlerausgabe (zum Schreiben der
  Diagnoseausgabe). Diese Datenströme werden abgekürzt durch
  
stdin, 
stdout und 
stderr. 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.
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,
  
fflush(3) vor der Rechnung aufzurufen, damit die Ausgabe erscheint.
Die Bibliothek 
stdio ist Teil der Bibliothek 
libc und die Routinen
  werden von den Compilern 
cc(1) und 
pc(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.
Die folgenden Namen sind als Makros definiert. Sie dürfen 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 | 
    Status des Datenstroms prüfen und zurücksetzen | 
  
  
    | fclose | 
    Datenstrom schließen | 
  
  
    | fdopen | 
    Funktionen zum Öffnen eines Datenstroms | 
  
  
    | feof | 
    Status des Datenstroms prüfen und zurücksetzen | 
  
  
    | ferror | 
    Status des Datenstroms prüfen und zurücksetzen | 
  
  
    | fflush | 
    Datenstrom herausschreiben | 
  
  
    | fgetc | 
    das nächsten Zeichen oder Wort vom Eingabedatenstrom
      einlesen | 
  
  
    | fgetpos | 
    einen Datenstrom neu positionieren | 
  
  
    | fgets | 
    eine Zeile aus einem Datenstrom einlesen | 
  
  
    | fileno | 
    den Ganzzahldeskriptor eines Argumentdatenstroms zurückgeben | 
  
  
    | fopen | 
    Funktionen zum Öffnen eines Datenstroms | 
  
  
    | fprintf | 
    formatierte Ausgabeumwandlung | 
  
  
    | fpurge | 
    einen Datenstrom herausschreiben | 
  
  
    | fputc | 
    ein Zeichen oder Wort in den Datenstrom ausgeben | 
  
  
    | fputs | 
    eine Zeile in den Datenstrom ausgeben | 
  
  
    | fread | 
    binäre Datenstromein-/-ausgabe | 
  
  
    | freopen | 
    Funktionen zum Öffnen eines Datenstroms | 
  
  
    | fscanf | 
    formatbasierte Eingabeumwandlung | 
  
  
    | fseek | 
    einen Datenstrom neu positionieren | 
  
  
    | fsetpos | 
    einen Datenstrom neu positionieren | 
  
  
    | ftell | 
    einen Datenstrom neu positionieren | 
  
  
    | fwrite | 
    binäre Datenstromein-/-ausgabe | 
  
  
    | getc | 
    nächstes Zeichen oder Wort aus dem Eingabedatenstrom
      einlesen | 
  
  
    | getchar | 
    nächstes Zeichen oder Wort aus dem Eingabedatenstrom
      einlesen | 
  
  
    | gets | 
    eine Zeile aus dem Datenstrom einlesen | 
  
  
    | getw | 
    nächstes Zeichen oder Wort aus dem Eingabedatenstrom
      einlesen | 
  
  
    | mktemp | 
    einen (eindeutigen) temporären Dateinamen erzeugen | 
  
  
    | perror | 
    Systemfehlermeldungen | 
  
  
    | printf | 
    formatierte Ausgabeumwandlung | 
  
  
    | putc | 
    ein Zeichen oder Wort in einen Datenstrom ausgeben | 
  
  
    | putchar | 
    ein Zeichen oder Wort in einen Datenstrom ausgeben | 
  
  
    | puts | 
    eine Zeile in einen Datenstrom ausgeben | 
  
  
    | putw | 
    ein Zeichen oder Wort in einen Datenstrom ausgeben | 
  
  
    | remove | 
    einen Verzeichniseintrag löschen | 
  
  
    | rewind | 
    einen Datenstrom neu positionieren | 
  
  
    | scanf | 
    formatbasierte Eingabeumwandlung | 
  
  
    | setbuf | 
    Datenstrom-Puffereinstellungen | 
  
  
    | setbuffer | 
    Datenstrom-Puffereinstellungen | 
  
  
    | setlinebuf | 
    Datenstrom-Puffereinstellungen | 
  
  
    | setvbuf | 
    Datenstrom-Puffereinstellungen | 
  
  
    | sprintf | 
    formatierte Ausgabeumwandlung | 
  
  
    | sscanf | 
    formatbasierte Eingabeumwandlung | 
  
  
    | strerror | 
    Systemfehlermeldungen | 
  
  
    | sys_errlist | 
    Systemfehlermeldungen | 
  
  
    | sys_nerr | 
    Systemfehlermeldungen | 
  
  
    | tempnam | 
    Routinen für temporäre Dateien | 
  
  
    | tmpfile | 
    Routinen für temporäre Dateien | 
  
  
    | tmpnam | 
    Routinen für temporäre Dateien | 
  
  
    | ungetc | 
    Zeichen zurück in den Eingabedatenstrom geben | 
  
  
    | vfprintf | 
    formatierte Ausgabeumwandlung | 
  
  
    | vfscanf | 
    formatbasierte Eingabeumwandlung | 
  
  
    | vprintf | 
    formatierte Ausgabeumwandlung | 
  
  
    | vscanf | 
    formatbasierte Eingabeumwandlung | 
  
  
    | vsprintf | 
    formatierte Ausgabeumwandlung | 
  
  
    | vsscanf | 
    formatbasierte Eingabeumwandlung | 
  
Die Bibliothek 
stdio ist konform C89.
SIEHE AUCH¶
close(2), 
open(2), 
read(2), 
write(2),
  
stdout(3), 
unlocked_stdio(3)
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.74 des Projekts Linux-
  
man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler
  gemeldet werden können sowie die aktuelle Version dieser Seite finden
  sich unter 
http://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
  <krd@gulu.net>, Chris Leick <c.leick@vollbio.de> und Mario
  Blättermann <mario.blaettermann@gmail.com> 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 <debian-l10n-german@lists.debian.org>.