C
Die stdio.h enthält Funktionen für Ein- und Ausgabe. Das
sind zum einen Funktionen, die auf einen Datenstrom (stream) arbeiten,
der einer Datei oder einem Gerät zugeordnet werden kann. Diese
Funktionen haben einen Parameter vom Typ FILE *, der den
stream beschreibt. Die Struktur FILE soll von einem Benutzer nicht
verändert werden! Ein stream muß vor seiner Verwendung
geöffnet (fopen) und nach seiner Verwendung geschlossen (fclose)
werden. Die Daten eines streams werden gepuffert, so daß nicht
für jedes Byte ein Zugriff auf die Platte nötig ist.
Zusätzlich gibt es noch Funktionen, die auf den
Standardkanäle für Ein- und Ausgabe arbeiten. Dies sind die
streams stdin, stdout und stderr, die schon ab Programmstart offen
sind.
- void clearerr( FILE *stream );
- Diese Funktion löscht intern gespeicherte Informationen
über den zuletzt aufgetretenen Fehler bei Verwendung von stream.
- int fclose( FILE *stream );
- Diese Funktion schließt einen Stream. Damit werden auch
sämtliche Daten im Puffer geschrieben.
- int feof( FILE *stream );
- Diese Fuktion prüft, ob das Dateiende erreicht ist. Ein Wert
ungleich Null bedeutet, daß das Dateiende erreicht ist.
- int ferror( FILE *stream );
- Diese Funktion prüft, ob ein Fehler bei der Benutzung von
stream aufgetreten ist. Ein Wert ungleich Null bedeutet, daß ein
Fehler aufgetreten ist.
- int fflush( FILE *stream );
- Diese Funktion schreibt die noch im Puffer befindlichen Daten in
den stream.
- int fgetc( FILE *stream );
- Diese Funktion liest ein Zeichen (unsigned char) aus dem Stream.
Wenn kein Zeichen zur Verfügung steht, wird EOG geliefert.
- int getc( FILE *stream );
- Diese Funktion ist äquivalent zu fgetc, kann aber als Makro
definiert sein.
- int getchar( void );
- Diese Funktion ist äquivalent zu getc(stdin).
- int fgetpos( FILE *stream, fpos_t *pos );
- Diese Funktion speichert die momentane Position innerhalb der
Datei in die Variable pos, um sie z.B. mittels fsetpos später
wieder anzuspringen.
- char *fgets( char *str, int n, FILE *stream );
- Diese Funktion liest eine Zeile in die Variable str. Der
Parameter n gibt an, wieviel Zeichen inklusive der
abschließenden Null str aufnehmen kann.
- FILE *fopen( const char *filename, const char *mode );
- Diese Funktion öffnet eine Datei und ordnet sie einem stream
zu. Da unter UNIX und MiNT die Geräte bzw. Schnittstellen eine
Repräsentation im Dateisystem haben, lassen sich hier auch
streams für Schnittstellen öffnen. Unter MiNT sind dies die
Dateien im Verzeichnis u:\dev. Wenn die Datei nicht existiert, wird
NULL zurückgegeben. Der Parameter mode gibt den Zugriffsmodus an:
- "w"
- Die Datei wird zum Schreiben geöffnet. Wenn die Datei nicht
existiert, wird sie angelegt. Existiert die Datei, wird sie
gelöscht.
- "r"
- Die Datei wird zum Lesen geöffnet. Die Datei muß
existieren.
- "w+"
- Die Datei wird zum Schreiben und Schreiben geöffnet. Wenn
die Datei nicht existiert, wird sie angelegt. Existiert die Datei,
wird sie gelöscht. Wird zwischen Lesen und Schreiben gewechselt,
muß entweder fflush aufgerufen werden oder der Dateizeiger
mittels fseek neu positioniert werden.
- "r+"
- Die Datei wird Lesen und zum Schreiben geöffnet. Die Datei
muß existieren. Wird zwischen Lesen und Schreiben gewechselt,
muß entweder fflush aufgerufen werden oder der Dateizeiger
mittels fseek neu positioniert werden.
- "a"
- Die Datei wird zum Anhängen geöffnet. Die Datei
muß existieren.
Enthält der Mode nach dem ersten Zeichen noch ein b, z.B.
"rb" oder "w+b", wird die Datei im Binärmodus
geöffnet. Ein Öffnen im Textmodus bedeutet uaf Ataris oder
PCs auch, daß ein Linefeed '\n' im Stream zu einem CR LF in der
Datei gewandelt wird. Beim Einlesen wird entsprechend ein Return
gefolgt von einem Linefeed zu einem Linefeed. Damit wird in der Datei
oder bei der Bildschirmausgabe das Zeilenende benutzt, daß das
System benutzt. In der Zeichenkette im C Programm wird immer '\n' als
Zeilenende benutzt.
- int fprintf( FILE *stream, const char *format, ... );
- Diese Funktion schreibt beliebige Paramter anhand der
Informationen, die der Formatstring format vorgibt. Nach dem
Formatstring folgen die Variablen oder Konstanten, die ausgegeben
werden sollen.
- int fputc( int ch, FILE *stream );
- Diese Funktion schreibt ein Zeichen (unsigned char).
- int putc( int ch, FILE *stream );
- Diese Funktion ist äquivalent zu fputc, kann aber als Makro
definiert sein.
- int putchar( int c );
- Diese Funktion ist äquivalent zu putc( c, stdout);
- int fputs( const char *str, FILE *stream );
- Diese Funktion schreibt eine Zeichenkette.
- size_t fread( void *buf, size_t elem_Siz, size_t count, FILE *stream );
- Diese Funktion liest count Elemente der Größe elem_Siz
in den Puffer buf ein. Die Funktion gibt die Anzahl der gelesenen
Elemente zurück.
- FILE *freopen( const char *filename, const char *mode, FILE *stream );
- Diese Funktion öffnet eine Datei und ordnet sie einem
vorhandenen Stream zu. Damit lassen sich z.B. die Dateien ändern,
die stdin, stdout und stderr zugeordnet sind.
- int fscanf( FILE *stream, const char *format, ... );
- Diese Funktion liest Daten ein, das Formt der Daten wird durch
den Formatstring format vorgegeben. Anschließend folgen die
Adressen der Variablen, in die eingelesen werden soll.
- int fseek( FILE *stream, long offset, int mode );
- Diese Funktion legt fest, ab welcher Position in der Datei
weitere Ein- und Ausgaben erfolgen. Es wir also der Dateizeiger neu
positioniert. Der Parameter mode gibt an, bezüglich welcher
Stelle in der Datei neu positioniert werden soll:
- SEEK_SET
- Positioniert relativ zum Dateianfang.
- SEEK_CUR
- Positioniert relativ zur aktuellen Position.
- SEEK_END
- Positioniert relativ zum Dateiende.
- void rewind( FILE *stream);
- Diese Funktion ist äquivalent zu fseek(strem,0,SEEK_SET);
clearerr(stream);
- int fsetpos( FILE *stream, const fpos_t *pos );
- Diese Funktion setzt den Dateizeiger wieder an die stelle, die
mittels fgetpos gespeichert wurde.
- long ftell( FILE *stream );
- Diese Funktion liefert die Position innerhalb der Datei.
- size_t fwrite( const void *buf, size_t elem_Siz, size_t count, FILE *stream );
- Diese Funktion schreibt count Elemente der Größe
elem_Siz aus dem Puffer buf. Die Funktion gibt die Anzahl der
gelschriebenen Elemente zurück.
- char *gets( char *str );
- Diese Funktion liest die nächste Zeile von der
Standardeingabe ein.
- void perror( char *s );
- Diese Funktion gibt zuerst s und dann eine Fehlermeldung passend
zu dem aktuellen Wert der Variable errno aus. Der Text ist von der
Implementierung abhängig.
- int printf( const char *format, ... );
- Diese Funktion verhält sich wie fprintf, gibt aber auf die
Standardausgabe aus.
- int puts( const char *str );
- Diese Funktion schreibt eine Zeichenkette auf die
Standardausgabe.
- int scanf( const char *format, ... );
- Diese Funktion verhält sich wie fscanf, liest aber von der
Standardeingabe.
- void setbuf( FILE *stream, char *buf );
- Wird für buf der Wert NULL übergeben, wird für den
Stream die Pufferung ausgeschaltet. Für einen Wert ungleich NULL
ist die Funktion äquivalent zu setvbuf(stream, buf, _IOFBF,
BUFSIZ);
- int setvbuf( FILE *stream, char *buf, int type, size_t size );
- Diese Funktion legt die Pufferung fest und muß vor allen
anderen Operationen auf diesen Stream aufgerufen werden. Hat buf den
Wert NULL, wird ein eigener Puffer anglegt, ansosnten wird buf
verwendet. Der Wert size gubt die Puffergröße an. Der Wert
type gibt die Art der Pufferung an:
- _IOFBF
- Die Datei wird vollständig gepuffert.
- _IOLBF
- Die Textdatei wird zeilenweise gepuffert.
- _IONBF
- Die Datei wird nicht gepuffert.
- int sprintf( char *string, const char *format, ... );
- Diese Funktion verhält sich wie fprintf, gibt aber in eine
Zeichenkette aus.
- int sscanf( char *string, const char *format, ... );
- Diese Funktion verhält sich wie fscanf, liest aber aus einer
Zeichenkette.
- char *tmpnam( char *s );
- Wird NULL übergeben, erzeugt diese Funktion einen Namen, der
als Dateiname für eine temporäre Datei verwendet werden
kann. Es ist sichergestellt, daß noch keine Datei mit diesen
Namen existiert. Wird eine Name, der mindestens L_tmpnam Zeichen
enthält, übergeben, wird dieser gespeichert und als Ergebnis
geliefert.
- FILE *tmpfile( void );
- Diese Funktion erzeugt eine temporäre Datei, die mit dem
Mode "wb+" geöffnet wurde. Konnte keine Datei
geöffnet werden, ist das Ergebnis NULL.
- int ungetc( int ch, FILE *stream );
- Diese Funktion stellt ein gelesenes Zeichen wieder in den Stream
zurück. Ein erneutes Lesen mittels fgetc( stream) würde
wieder dieses Zeichen lesen.
- int vfprintf( FILE *stream, const char *format, va_list param );
- Diese Funktion ist äquivalent zu fprintf, benutzt aber keine
variable Parameterliste. Der Parameter ist ein Wert, der durch
va_start und vielleicht va_arg initialisiert werden kann. Damit kann
eine variable Parameterliste an vfprintf weitergereicht werden.
- int vprintf( const char *format, va_list param );
- Diese Funktion ist äquivalent zu printf, benutzt aber keine
variable Parameterliste. Der Parameter ist ein Wert, der durch
va_start und vielleicht va_arg initialisiert werden kann. Damit kann
eine variable Parameterliste an vprintf weitergereicht werden.
- int vsprintf( char *string, const char *format, va_list param );
- Diese Funktion ist äquivalent zu sprintf, benutzt aber keine
variable Parameterliste. Der Parameter ist ein Wert, der durch
va_start und vielleicht va_arg initialisiert werden kann. Damit kann
eine variable Parameterliste an vsprintf weitergereicht werden.
- int vfscanf( FILE *stream, const char *format, va_list param );
- Diese Funktion ist äquivalent zu fscanf, benutzt aber keine
variable Parameterliste. Der Parameter ist ein Wert, der durch
va_start und vielleicht va_arg initialisiert werden kann. Damit kann
eine variable Parameterliste an vfscanf weitergereicht werden.
- int vscanf( const char *format, va_list param );
- Diese Funktion ist äquivalent zu scanf, benutzt aber keine
variable Parameterliste. Der Parameter ist ein Wert, der durch
va_start und vielleicht va_arg initialisiert werden kann. Damit kann
eine variable Parameterliste an vscanf weitergereicht werden.
- int vsscanf( char *string, const char *format, va_list param );
- Diese Funktion ist äquivalent zu sscanf, benutzt aber keine
variable Parameterliste. Der Parameter ist ein Wert, der durch
va_start und vielleicht va_arg initialisiert werden kann. Damit kann
eine variable Parameterliste an vsscanf weitergereicht werden.
- int fileno( FILE *stream );
- Diese Funktion liefert das Handle der Funktion, also unter TOS
das GEMDOS Dateihandle. Achtung: diese Funktion darf nicht dazu
benutzt werden, unterschiedliche Schichten (Stream, GEMDOS) zu
mischen! Dies würde zu Fehlern führen!
|
English version not yet available.
|
Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home -
Mail an den Webmaster -
Impressum