Prototyp : int isprint(int c);
Header : <ctype.h>
Beschreibung :
isprint prüft, ob das als Integer-Wert übergebene Zeichen
ein druckbares Zeichen ist (einschließlich Leerzeichen).
Rückgabewert :
isprint liefert einen Wert ungleich Null zurück, wenn c ein druckbares
Zeichen ist.
Prototyp : int ispunct(int c);
Header : <ctype.h>
Beschreibung :
ispunct prüft, ob das als Integer-Wert übergebene Zeichen
ein Interpunktionszeichen ist (jedes druckbare Zeichen, aber weder ein
alphanumerisches Zeichen, noch das Leerzeichen).
Rückgabewert :
ispunct liefert einen Wert ungleich Null zurück, wenn c ein Interpunktionszeichen
ist.
Prototyp : int isspace(int c);
Header : <ctype.h>
Beschreibung :
isspace prüft, ob das als Integer-Wert übergebene Zeichen
ein Leerzeichen ist.
Rückgabewert :
isspace liefert einen Wert ungleich Null zurück, wenn c ein Leerzeichen,
Tabulator, Wagenrücklauf, Zeilenvorschub, vertikaler Tabulator oder
ein Seitenvorschub (ASCII-Codes 0x09 bis 0x0D, 0x20) ist.
Prototyp : int isupper(int c);
Header : <ctype.h>
Beschreibung :
isupper prüft, ob das als Integer-Wert übergebene Zeichen
ein Grossbuchstabe ist.
Rückgabewert :
isupper liefert einen Wert ungleich Null zurück, wenn c ein Grossbuchstabe
ist.
Prototyp : int isxdigit(int c);
Header : <ctype.h>
Beschreibung :
isxdigit prüft, ob das als Integer-Wert übergebene Zeichen
eine hexadezimale Ziffer ist.
Rückgabewert :
isxdigit liefert einen Wert ungleich Null zurück, wenn c eine
hexadezimale Ziffer (0 bis 9, A bis F, a bis f) ist.
Prototyp : char *itoa(int value, char *string, int radix);
Header : <stdlib.h>
Beschreibung :
itoa konvertiert den übergebenen Integerwert value in einen
nullterminierten String und speichert das Ergebnis in der durch string
bezeichneten Variablen. Der Parameter radix legt die Basis fest,
die bei der Konvertierung angewendet werden soll. Mögliche Werte liegen
im Bereich von 2 bis 36. Wenn radix den Wert 10 hat und value
kleiner als Null ist, stellt itoa dem Ergebnis ein Minuszeichen voran.
Die durch den Parameter string angegebene Zeichenkette muß
lang genug sein, um das Ergebnis der Konvertierung inklusive eines abschließenden
Nullzeichens (\0) aufnehmen zu können (maximal 17 Bytes).
Rückgabewert :
itoa liefert den Zeiger string zurück.
Prototyp : int kbhit(void);
Header : <conio.h>
Beschreibung :
kbhit prüft, ob ein Zeichen über die Tastatur eingegeben
wurde. Verfügbare Zeichen können mit getch
oder getche gelesen werden
Rückgabewert :
Wenn eine noch nicht gelesene Tastatureingabe vorliegt, liefert kbhit
einen Wert ungleich Null. Liegt kein Zeichen an, dann liefert kbhit den
Wert 0.
Prototyp : long labs(long int x);
Header : <math.h>
Beschreibung :
labs berechnet den absoluten Wert des long-Arguments x.
Rückgabewert :
labs liefert den absoluten Wert des long-Arguments x zurück.
Prototyp : double ldexp(double x, int exp);
Header : <math.h>
Beschreibung :
ldexp liefert das Ergebnis der Berechnung x * 2^exp als
double-Wert zurück.
Rückgabewert :
Bei fehlerfreier Ausführung liefert ldexp das Ergebnis der Berechnung
von x * 2^exp zurück.
Prototyp : long double ldexpl(long double x, int exp);
Header : <math.h>
Beschreibung :
ldexpl liefert das Ergebnis der Berechnung x * 2^exp
als long double-Wert zurück.
Rückgabewert :
Bei fehlerfreier Ausführung liefert ldexp das Ergebnis der Berechnung
von x * 2^exp zurück.
Prototyp : ldiv_t ldiv(long int numer, long int denom);
Header : <stdlib.h>
Beschreibung :
ldiv dividiert die als numer (Dividend) und denom (Divisor)
übergebenen long-Werte und liefert eine Struktur des Typs ldiv_t
zurück.
Rückgabewert :
Es wird eine Struktur des zuvor beschriebenen Typs zurückgeliefert.
Prototyp : struct tm * localtime( time_t *t );
Header : <time.h>
Beschreibung :
Die Funktion localtime konvertiert Datum und Uhrzeit aus einer time_t-Variable
(von der Funktion time) in eine Struktur des
Typs tm. localtime berücksichtigt
die Zeitzone und die Sommerzeit.
Rückgabewert :
localtime liefert einen Zeiger auf eine statische Struktur mit den
einzelnen Zeitangaben. Die Struktur wird bei jedem Aufruf dieser Funktionen
überschrieben.
Prototyp: double log(double x);
Header : <math.h>
Beschreibung :
log berechnet den Logarithmus n des Arguments x.
Rückgabewert :
log liefert das Ergebnis der Berechnung von log(x) zurück.
Ist x ein reelles Argument und x < 0, so setzt log die
globale Variable errno auf den Wert
EDOM Bereichsfehler
Ist x == 0, dann liefert die Funktionen den Wert HUGE_VAL zurück.
Prototyp : double log10(double x);
Header : <math.h>
Beschreibung :
log10 berechnet den Logarithmus n des Arguments x zur Basis
10, erfüllt also die Gleichung x = 10n.
Rückgabewert :
log10 liefert das Ergebnis der Berechnung von log10(x) zurück.
Ist x ein reelles Argument und x < 0, so setzt log10 die
globale Variable errno auf den Wert
EDOM Bereichsfehler
Ist x == 0, dann liefern die Funktionen den Wert HUGE_VAL zurück.
Prototyp : long double log10(long double x);
Header : <math.h>
Beschreibung :
log10l berechnet den Logarithmus n des Arguments x zur Basis
10, erfüllt also die Gleichung x = 10n.
Rückgabewert :
log10l liefert das Ergebnis der Berechnung von log10(x) zurück.
Ist x ein reelles Argument und x < 0, so setzt log10l die globale
Variable errno auf den Wert
EDOM Bereichsfehler
Ist x == 0, dann liefern die Funktionen den Wert LHUGE_VAL zurück.
Prototyp: long double logl(long double x);
Header : <math.h>
Beschreibung :
logl berechnet den Logarithmus n des Arguments x.
Rückgabewert :
logl liefert das Ergebnis der Berechnung von log(x) zurück.
Ist x ein reelles Argument und x < 0, so setzt logl die
globale Variable errno auf den Wert
EDOM Bereichsfehler
Ist x == 0, dann liefert die Funktionen den Wert LHUGE_VAL zurück.
Prototyp : long lseek(int handle, long offset, int fromwhere);
Header : <io.h>
Beschreibung :
lseek setzt den Dateizeiger der durch handle bezeichneten Datei
auf eine neue Position, die offset Bytes von der durch fromwhere
angegebenen Dateiposition entfernt ist. fromwhere muß dabei
eine der folgenden in io.h definierten symbolischen Konstanten sein:
SEEK_CUR Aktuelle Position des
Dateizeigers
SEEK_END Dateiende
SEEK_SET Dateianfang
Rückgabewert :
lseek liefert bei fehlerfreier Ausführung die neue Zeigerposition,
gemessen in Bytes vom Dateianfang, zurück. Im Fehlerfall wird der
Wert -1L zurückgeliefert, und die globale Variable errno
erhält einen der folgenden Werte:
EBADF Ungültiges Handle
EINVAL Ungültiges Argument
ESPIPE Suche auf Gerät nicht
erlaubt
Bei der Anwendung auf Gerätedateien (wie Terminals, Druckern, Schnittstellen
usw.) ist der Rückgabewert undefiniert.
Prototyp : char *ltoa(long value, char *string, int radix);
Header : <stdlib.h>
Beschreibung :
ltoa konvertiert den übergebenen Wert value in einen nullterminierten
String und speichert den Rückgabewert an der durch string angegebenen
Adresse. ltoa erwartet für value einen long-Wert. Der Parameter
radix legt die Basis fest, mit der die Konvertierung stattfinden
soll - mögliche Werte liegen im Bereich von 2 bis 36. Wenn radix
den Wert 10 hat und value kleiner als Null ist, stellt ltoa dem
Ergebnis ein Minuszeichen voran. Der für string reservierte
Speicher muß groß genug sein, um das Ergebnis der Konvertierung
inklusive des abschließenden Nullzeichens (\0) aufnehmen zu können.
ltoa kann bis zu 33 Bytes zurückliefern.
Rückgabewert :
Die Funktion liefert den Zeiger string zurück.
Prototyp : void *malloc(size_t size);
Header : <stdlib.h>
Beschreibung :
malloc reserviert einen Speicherbereich von size Bytes auf dem
Heap. Damit kann ein Programm Speicher genau nach Bedarf und exakt in der
benötigten Größe reservieren.
Rückgabewert :
malloc liefert bei fehlerfreier Ausführung einen Zeiger auf den
neu reservierten Speicherbereich. Wenn kein Speicherbereich in ausreichender
Größe zur Verfügung steht, dann ist der Rückgabewert
NULL. Es findet keine Initialisierung des Speicherblocks statt. Wenn der
Parameter size den Wert 0 hat, liefert malloc NULL zurück.
Prototyp : void *memchr(const void *s, int c, size_t n);
Header : <string.h>
Beschreibung :
Die Funktion sucht die ersten n Bytes des Blocks s nach
dem Wert c ab.
Rückgabewert :
memchr liefert die Adresse des ersten Vorkommens von c im Array
s zurück - oder NULL, wenn c innerhalb der ersten n
Bytes von s nicht vorkommt.
Prototyp : int memcmp(const void *s1, const void *s2, size_t
n);
Header : <string.h>
Beschreibung :
memcmp vergleicht die ersten n Bytes der Blöcke s1
und s2 miteinander und behandelt diese als unsigned char.
Rückgabewert :
Da die Bytes als unsigned char verglichen werden, liefert memcmp einen
der folgenden Werte zurück:
< 0 falls s1 kleiner
als s2 ist
== 0 falls die ersten n Zeichen
von s1 und s2 übereinstimmen
> 0 falls s1 grösser
als s2 ist
Beispielsweise liefert memcmp("\xFF", "\x7F", 1) einen Wert grösser
Null.
Prototyp : void *memcpy(void *dest, const void *src, size_t n);
Header : <string.h>
Beschreibung :
Die Funktion kopiert n Bytes von src nach dest.
Überlappen sich scr und dest, ist das Verhalten von
memcpy undefiniert.
Rückgabewert :
memcpy liefert den übergebenen Parameter dest zurück.
Prototyp : void *memmove(void *dest, const void *src, size_t
n);
Header : <string.h>
Beschreibung :
Die Funktion kopiert n Bytes von src nach dest
und ist daher im Prinzip identisch mit memcpy - hier
werden jedoch Überlappungen von Quell- und Zielgebiet automatisch
berücksichtigt.
Rückgabewert :
memmove liefert den übergebenen Parameter dest zurück,
also einen Zeiger auf den Zielblock.
Prototyp : void *memset(void *s, int c, size_t n);
Header : <string.h>
Beschreibung :
memset setzt die ersten n Bytes des Array s auf den Wert
von c.
Rückgabewert :
memset liefert den übergebenen Parameter s zurück.
Prototyp : time_t mkime( struct tm *ti );
Header : <time.h>
Beschreibung :
Die Funktion mktime konvertiert die Uhrzeit aus der tm-Struktur
in eine Kalenderzeit des Typs time_t. Die ursprünglichen Werte der
Felder tm_sec, tm_min, tm_hour, tm_mday und tm_mon sind nicht auf den durch
die tm-Struktur festgelegten Bereich beschränkt.
Befinden sich die Felder nicht innerhalb des korrekten Bereichs, werden
sie entsprechend angepaßt. Die Werte der Felder tm_wday und tm_yday
werden nach der Anpassung der anderen Felder automatisch berechnet. Die
zulässige Bereich für die Kalenderzeit liegt zwischen dem 1.
Januar 1970 00:00:00 und dem 19. Januar 2038 03:14:07.
Rückgabewert :
Die Funktion liefert die Anzahl der Sekunden seit 1. Januar 1970 00:00:00
Uhr als time_t-Typ oder den Wert -1, falls die Kalenderzeit nicht dargestellt
werden kann.
Prototyp : double modf(double x, double *ipart);
Header : <math.h>
Beschreibung :
modf spaltet den double-Wert x in zwei Teile: in den Vorkomma-
und den Nachkomma-Anteil. modf speichert den ganzzahligen Vorkomma-Anteil
in ipart und liefert den Nachkomma-Anteil zurück.
Rückgabewert :
modf liefert den Nachkomma-Anteil des Arguments x zurück.
Prototyp : long double modfl(long double x, long double *ipart);
Header : <math.h>
Beschreibung :
modfl spaltet den long double-Wert x in zwei Teile: in den Vorkomma-
und den Nachkomma-Anteil. modfl speichert den ganzzahligen Vorkomma-Anteil
in ipart und liefert den Nachkomma-Anteil zurück.
Rückgabewert :
modfl liefert den Nachkomma-Anteil des Arguments x zurück.
Prototyp : int open(const char *path, int access [, unsigned
mode]);
Header : <io.h>
Beschreibung :
open öffnet die durch path angegebene Datei und bereitet
sie je nach Inhalt des Parameters access für Lese- und/oder
Schreibzugriffe vor. Um beim Erzeugen einer Datei einen bestimmten Zugriffsmodus
festzulegen, kann die globale Variable _fmode
verwendet oder ein Aufruf von open mit den Optionen O_CREAT und O_TRUNC
und dem gewünschten Übersetzungssmodus (O_BINARY bzw. O_TEXT)
durchgeführt werden.
Beispielsweise erzeugt der Aufruf
Liste 1: Flags für Lesen und/oder Schreiben
O_RDONLY Nur Lesen
O_WRONLY Nur Schreiben
O_RDWR Lesen und
Schreiben
Liste 2: Weitere Zugriff-Flags
O_APPEND | Neu geschriebene Daten werden grundsätzlich angehängt; das Überschreiben bereits existierender Daten ist nicht möglich |
O_CREAT | Wenn die Datei noch nicht existiert, wird sie mit den über mode angegebenen Attributen erzeugt; falls die Datei bereits existiert, hat dieses Flag keine Wirkung |
O_TRUNC | Wenn die Datei bereits existiert, wird ihr vorheriger Inhalt gelöscht; die Dateiattribute bleiben unverändert |
O_EXCL | Nur zusammen mit O_CREAT verwendet; falls die Datei bereits existiert, wird ein Fehler zurückgeliefert |
O_BINARY | Die Datei wird unabhängig von _fmode im binären Modus geöffnet - gelesene bzw. geschriebene Daten werden nicht interpretiert |
O_TEXT | Die Datei wird (unabhängig von _fmode) im Textmodus geöffnet |
Bei der Anwendung von O_CREAT (d.h., bei der Erzeugung einer neuen Datei) muß der Parameter mode über die folgenden symbolischen Konstanten festgelegt werden, die in sys/stat.h definiert sind:
S_IWRITE
Schreiben erlaubt
S_IREAD
Lesen erlaubt
S_IREAD|S_IWRITE Lesen und
Schreiben erlaubt
Rückgabewert :
Wenn die Datei fehlerfrei geöffnet werden konnte, liefert open
das Handle dieser Datei zurück (einen Integerwert grösser als
0, über den weitere Operationen mit dieser Datei ausgeführt werden).
Der Dateizeiger - dieser markiert die aktuelle Position in der Datei -
wird auf den Dateianfang gesetzt.
Im Fehlerfall liefert die Funktion den Wert -1 zurück und setzt die globale Variable errno auf einen der folgenden Werte:
EACCES Zugriff nicht gestattet
EINVACC Ungültiger Zugriffscode
EMFILE Zu viele Dateien
offen
ENOENT Pfad/Datei nicht
gefunden
Prototyp : int outp(unsigned portid, int value);
Header : <conio.h>
Beschreibung :
Die Funktion outp schreibt das niederwertige Byte von value
an die von portid angegebenen Adresse.
Rückgabewert :
outp liefert value zurück.
Prototyp : unsigned outpw(unsigned portid, unsigned value);
Header : <conio.h>
Beschreibung :
Die Funktion outpw schreibt das durch value gegebene 16-Bit
Wort an die von portid bezeichnete Adresse. Über eine einzelne
16-Bit OUT-Anweisung wird das niederwertige Byte von value zu portid
und das höherwertige Byte zu portid + 1 ausgegeben.
Rückgabewert :
outpw liefert value zurück.
Prototyp : double pow(double x, double y);
Header : <math.h>
Beschreibung :
pow liefert das Ergebnis der Berechnung x^y zurück.
Rückgabewert :
Bei fehlerfreier Ausführung liefert pow das Ergebnis der Berechnung
x^y zurück. Falls sich die Argumente nicht innerhalb der zulässigen
Grenzen halten, so wird ein Überlauf erzeugt oder das Ergebnis ist
nicht berechenbar. Bei einem Überlauf liefert pow HUGE_VAL zurück.
Die globale Variable errno wird in diesen
Fällen auf folgenden Wert gesetzt:
ERANGE Ergebnis ausserhalb des Rechenbereichs
Ist der Parameter x reellwertig und kleiner als 0, und ist y keine ganze Zahl (oder beim Aufruf von pow( 0,0 ), so erhält die globale Variable errno den Wert:
EDOM Bereichsfehler
Prototyp : double pow10(int p);
Header : <math.h>
Beschreibung :
pow10 berechnet den Ausdruck 10^p.
Rückgabewert :
pow10 liefert das Ergebnis der Berechnung von 10^p zurück.
Prototyp : long double pow10l(int p);
Header : <math.h>
Beschreibung :
pow10l berechnet den Ausdruck 10^p.
Rückgabewert :
pow10l liefert das Ergebnis der Berechnung von 10^p zurück.
Prototyp : long double powl(long double x, long double y);
Header : <math.h>
Beschreibung :
powl liefert das Ergebnis der Berechnung x^y zurück.
Rückgabewert :
Bei fehlerfreier Ausführung liefert powl das Ergebnis der Berechnung
x^y zurück. Falls sich die Argumente nicht innerhalb der zulässigen
Grenzen halten, so wird ein Überlauf erzeugt oder das Ergebnis ist
nicht berechenbar. Bei einem Überlauf liefert powl LHUGE_VAL zurück.
Die globale Variable errno wird in diesen
Fällen auf folgenden Wert gesetzt:
ERANGE Ergebnis ausserhalb des Rechenbereichs
Ist der Parameter x reellwertig und kleiner als 0, und ist y keine ganze Zahl (oder beim Aufruf von pow( 0,0 ), so erhält die globale Variable errno den Wert:
EDOM Bereichsfehler
Prototyp : int printf( const char *format[, argument, ...]);
Header : <stdio.h>
Beschreibung :
Die printf-Funktion erzeugt formatierte Ausgaben auf dem stdout-Gerät.
Dazu übernimmt sie eine Reihe von Argumenten und wendet auf jedes
dieser Argumente eine Formatieranweisung an, die im durch den Parameter
format angegebenen Format-String enthalten sind. Es müssen
für das Format genügend Argumente vorhanden sein, da die Ergebnisse
andernfalls unbestimmt und möglicherweise katastrophal sind. Parameter,
die durch den Format-String nicht erfasst (d.h.überzählig) sind,
werden ignoriert.
Rückgabewert :
printf liefert bei fehlerfreier Ausführung die Anzahl der ausgegebenen
Bytes, im Falle eines Fehlers EOF zurück.
Formatieranweisungen :
Die Formatieranweisungen für printf haben die folgende Syntax:
Flag | Bedeutung |
- | Stellt das Ergebnis linksbündig dar und füllt von rechts mit Nullen auf. Wenn dieses Flag nicht gesetzt ist, wird das Ergebnis linksbündig dargestellt und von rechts mit Nullen oder Leerzeichen aufgefüllt |
+ | Die Ergebnisse von vorzeichenbehafteten Konvertierungen beginnen immer mit einem Plus- oder Minuszeichen (+ oder -) |
# | Legt fest, daß arg konvertiert wird, wobei das Format alternative Form verwendet wird |
<Leerzeichen> | Bei nicht-negativen Werten beginnt die Ausgabe immer mit einem Leerzeichen und nicht mit einem Pluszeichen. Negative Werte beginnen weiterhin mit einem Minuszeichen |
Breitenangaben :
Die Breitenangabe legt die minimale Zahl auszugebender Zeichen fest.
Die Breite kann auf zwei Arten festgelegt werden:
Wenn eine Ausgabe weniger Zeichen erzeugt als durch die Breitenangabe
festgelegt ist, dann fügt printf (abhängig von den Flags) führende
bzw. abschließende Leerzeichen ein; erzeugt die Ausgabe dagegen mehr
Zeichen, als durch die Breitenangabe festgelegt ist, dann wird diese einfach
ignoriert. Ausgaben werden durch die Breitenangabe in keinem Fall begrenzt
oder abgeschnitten.
Breitenangabe | Wirkung |
n | printf gibt mindestens n Zeichen aus und stellt nötigenfalls Leerzeichen voran (Standard) bzw. fügt abschließende Leerzeichen an (Flag -) |
0n | printf gibt mindestens n Zeichen aus und stellt nötigenfalls eine entsprechende Anzahl führender Nullen voran |
* | Die Breitenangabe steht in der Parameterliste direkt vor dem auszugebenden Wert |
[.Präzision] | Wirkung auf Ausgabe |
(leer) | Die Standardwerte werden verwendet : |
- 1 für d,i,o,u,x und X | |
- 6 für e,E und f | |
- alle signifikanten Stellen für g und G | |
- Ausgabe bis zum ersten Nullzeichen für s | |
- keine Auswirkungen auf c | |
.0 | Standardwerte für d,i,o,u und x; keine Ausgabe des Dezimalpunkts für e,E und f |
.n | Ausgabe von n Zeichen bzw. n signifikanten Dezimalstellen. Falls der Ausgabewert mehr als n Zeichen umfasst, wird die Ausgabe unter Umständen abgeschnitten oder gerundet |
.* | Die Präzisionsangabe ist in der Parameterliste enthalten und muß dort als int vor dem auszugebenden Wert stehen |
Typzeichen | Wirkung von [.n] auf die Konvertierung |
d | Mindestens n Ziffern werden ausgegeben |
i | Nötigenfalls stellt printf führende Nullen voran |
o, u, x, X | Falls der auszugebende Wert mehr Stellen umfasst, als durch n angeggeben, wird der angegebene Wert nicht abgeschnitten |
e, E, f | n legt die Mindestanzahl der Stellen nach dem Komma fest. Die letze Stelle wird gerundet |
g, G | n legt die Mindestanzahl signifikanter Dezimalstellen fest (inklusive der Stellen vor dem Komma) |
c | Die Ausgabe von n hat keine Wirkung |
s | Es werden höchstens n Zeichen ausgegeben |
Modifizierer | Typzeichen | Wirkung auf Interpretation |
h | d, i, o, u, x, X | short int |
l | d, i, o, u, x, X | long int |
e | E, f, g, G | double |
L | e, E, f, g, G | long double |
Typzeichen :
Die Information in dieser Tabelle basiert auf der Annahme, daß
in der Formatieranweisung keine Flags, Breitenangaben, Präzisionsangaben
oder Grössenmodifizierer enthalten sind.
Typzeichen | Erwartete Eingabe | Ausgabeformat |
d | Integer | signed int (dezimal) |
i | Integer | signed int (dezimal) |
o | Integer | unsigned int (oktal) |
u | Integer | unsigned int (dezimal) |
x | Integer | unsigned int (hexadezimal), Buchstaben a bis f |
X | Integer | unsigned int (hexadezimal), Buchstaben A bis F |
f | Gleitkomma | vorzeichenbehafteter Wert der Form [-]dddd.dddd |
e | Gleitkomma | vorzeichenbehafteter Wert der Form [-]d.dddde[+/-]ddd |
g | Gleitkomma | vorzeichenbehafteter Wert im e- oder f-Format. Präzision gibt die Anzahl signifikanter Ziffern an. Abschließende Nullen und Dezimalpunkt werden nur ausgegeben, wenn es nötig ist |
E | Gleitkomma | dasselbe Format wie e, aber mit dem Zeichen E vor dem Exponenten |
G | Gleitkomma | dasselbe Format wie e, aber mit dem Zeichen E vor dem Exponenten, wenn das Format e verwendet wird |
c | Zeichen | einzelnes Zeichen |
s | String-Zeiger | Ausgabe bis zu einem Nullzeichen oder dem Erreichen der durch Präzision vorgegebenen Zeichenzahl |
% | (nichts) | Ausgabe des Zeichens % |
n | *int | Speichert an der Position, auf die das Eingabeargument zeigt, die Anzahl der bis jetzt ausgegebenen Zeichen |
p | Zeiger | Gibt das Eingabeargument als Zeiger in hexadezimaler Schreibweise aus |
Prototyp : int putc(int c, FILE *stream);
Header : <stdio.h>
Beschreibung :
Das Makro putc schreibt das Zeichen c in den durch stream
angegebenen Stream.
Rückgabewert :
putc liefert bei fehlerfreier Ausführung das übergebene Zeichen
c, im Fehlerfall den Wert EOF zurück.
Prototyp : int putchar(int c);
Header : <stdio.h>
Beschreibung :
putchar ist ein Makro und als putc(c, stdout) definiert.
Rückgabewert :
putchar liefert bei fehlerfreier Ausführung das übergebene
Zeichen c, im Fehlerfall den Wert EOF zurück.
Prototyp : int puts(const char *s);
Header : <stdio.h>
Beschreibung :
puts schreibt den nullterminierten String s zeichenweise nach
stdout und beendet die Ausgabe mit einem Zeilenvorschubzeichen.
Rückgabewert :
Bei fehlerfreier Ausführung liefert die Funktion einen nicht-negativen
Integerwert zurück. Im Fehlerfall ist der Rückgabewert EOF.
Prototyp : void qsort(void *base, size_t nelem, size_t width,
int (*fcmp)(const void *, const void *));
Header : <stdlib.h>
Beschreibung :
Sortiert die Elemente eines Array mit Hilfe des Quicksort-Algorithmus.
qsort ist die Implementierung der 3-Median-Variante des Quicksort-Algorithmus
zum Sortieren der Elemente eines Arrays. qsort ruft dazu die vom Benutzer
definierte Vergleichsfunktion fcmp wiederholt auf.
*elem1 < *elem2 Rückgabewert
< 0
*elem1 == *elem2 Rückgabewert
= 0
*elem1 > *elem2 Rückgabewert
> 0
Für den Vergleich bedeutet das Kleiner-als-Symbol (<), daß in der Sortierung das links stehende Element vor dem rechts stehenden erscheinen soll. Analog bedeutet das Grösser-als-Symbol (>), daß in der Sortierung das links stehende Element nach dem rechts stehenden erscheinen soll.
Rückgabewert :
Keiner.
Prototyp : int rand(void);
Header : <stdlib.h>
Beschreibung :
rand verwendet ein multiplikatives Kongruenzverfahren (Multiplikation
mit anschließender Modulo-Operation), um Pseudo-Zufallszahlen zu
erzeugen. Die Periode des Zufallszahlengenerators beträgt 232.
Rückgabewert :
rand liefert die erzeugte Pseudo-Zufallszahl zurück.
Prototyp : int read(int handle, void *buf, unsigned len);
Header : <io.h>
Beschreibung :
read liest len Bytes aus der durch handle bezeichneten
Datei in den durch buf angegebenen Speicherbereich. Wird die Datei
im Textmodus geöffnet, dann entfernt read Wagenrücklaufzeichen
und interpretiert das Zeichen [Strg][Z] als Dateiende.
handle ist das über einen Aufruf von creat,
creatnew, open, dup
oder dup2 erhaltene Datei-Handle. Bei Diskettendateien
beginnt der Lesevorgang ab der aktuellen Position des Dateizeigers. Nach
Beendigung des Lesevorgangs wird der Dateizeiger um die Anzahl der gelesenen
Bytes erhöht. Bei Gerätedateien ist eine Position nicht definiert
- hier liest read direkt vom entsprechenden Gerät.
Rückgabewert :
Bei fehlerfreier Ausführung liefert read die Anzahl der gelesenen
Bytes als positiven Integerwert zurück. Wenn die Datei im Textmodus
geöffnet wurde, dann werden Wagenrückläufe und [Strg][Z]
nicht mitgezählt. Wenn das Dateiende erreicht bzw. überschritten
wurde, so ist der Rückgabewert 0. Im Fehlerfall ist der Rückgabewert
-1 und die globale Variable errno wird auf
einen der folgenden Werte gesetzt:
EACCES Zugriff nicht gestattet
EBADF Ungültiges Handle
Prototyp : void *realloc(void *block, size_t size);
Header : <stdlib.h>
Beschreibung :
realloc verändert die Grösse eines zuvor reservierten Speicherblocks
auf size Bytes. Enthält size den Wert 0, so wird der
Speicherblock freigegeben und NULL zurückgeliefert. block muß
auf die Startadresse eines Speicherblocks zeigen, der zuvor mit einem Aufruf
von malloc, calloc
oder realloc ermittelt wurde. Wenn block ein NULL-Zeiger ist, verhält
sich realloc wie malloc. realloc ändert die
Grösse des reservierten Speicherblocks und kopiert dazu den Blockinhalt
an eine neue Adresse, falls nötig.
Rückgabewert :
realloc gibt die neue Adresse des Speicherblocks zurück, die von
der bisherigen Adresse abweichen kann. Ist die Grössenänderung
nicht möglich, gibt realloc NULL zurück.
Prototyp : int remove(const char *filename);
Header : <io.h>
Beschreibung :
remove löscht die durch filename angegebene Datei. Wenn
die Datei offen ist, müssen Sie sie erst schließen, bevor Sie
sie mit remove löschen können. Der Dateiname kann einen vollständigen
Pfad enthalten.
Rückgabewert :
Bei fehlerfreier Ausführung liefert remove den Wert 0 zurück.
Im Fehlerfall ist der Rückgabewert -1 und die globale Variable errno
erhält einen der folgenden Werte:
EACCES Zugriff nicht gestattet
ENOENT Pfad/Datei nicht gefunden
Prototyp : int rename(const char *oldname, const char *newname);
Header : <io.h>
Beschreibung :
rename ändert den Namen der Datei oldname in newname.
Beide Namen können vollständige Pfade und/oder Laufwerksbezeichner
enthalten. Die Angabe unterschiedlicher Laufwerke in oldname und
newname ist ebenso wie die Angabe von Jokerzeichen nicht zulässig.
Es ist mit rename möglich, Dateien von einem Verzeichnis in ein
anderes zu verschieben. Ist eine der Dateien in irgendeinem Prozess geöffnet,
so kehrt rename mit einem Fehler (EACESS) zurück.
Rückgabewert :
Bei fehlerfreier Ausführung liefert rename den Wert 0 zurück;
ansonsten ist das Funktionsergebnis ungleich Null und errno
erhält einen der folgenden Werte:
EACCES Zugriff verweigert
ENOENT Pfad/Datei nicht gefunden
EXDEV Unterschiedliches
Gerät
Prototyp : void rewind(FILE *stream);
Header : <stdio.h>
Beschreibung :
rewind ist äquivalent zu fseek(stream,
0L, SEEK_SET). Anders als fseek löscht rewind nicht nur das Dateiende-Flag,
sondern auch eventuell gesetzte Fehler-Flags. In Dateien, die für
Lese- und Schreiboperationen geöffnet worden sind, kann nach rewind
zwischen "Lesen" und "Schreiben" gewechselt werden.
Rückgabewert :
Keiner.
Prototyp : int scanf(const char *format[, address, ...]);
Header : <stdio.h>
Beschreibung :
Liest und formatiert eine Eingabe aus dem Stream stdin. Die Funktion
scanf führt folgende Aktionen durch:
ACHTUNG: scanf führt oft zu unerwarteten Ergebnissen, wenn sie von einem gegebenen Schema abweichen. Sie müssen berücksichtigen, wie scanf ein Zeilenende verarbeitet. Die Kombination aus gets oder fgets gefolgt von sscanf ist sicher und einfach und daher der Verwendung von scanf vorzuziehen.
Rückgabewert :
Bei fehlerfreier Ausführung liefert die scanf-Funktion die Anzahl
der Felder zurück, die erfolgreich gelesen, konvertiert und gespeichert
wurden. Dieser Wert beinhaltet keine Felder, die zwar gelesen, jedoch nicht
gespeichert wurden. Im Falle eines Fehlers liefert scanf 0 zurück,
wenn keine Felder gespeichert wurden und EOF, wenn scanf versucht, am Dateiende
oder am Ende eines String zu lesen.
Formatieranweisung :
In scanf-Formatstrings, haben Formatieranweisungen die folgende Form:
Komponente | Optional/Muß | Funktion/Auswirkung |
[ * ] | Optional | Zeichen für Zuweisungsunterdrückung. Unterdrückt die Zuweisung des nächsten Eingabefeldes |
[ Breite ] | Optional | Breitenangabe. Maximale Anzahl der zu lesenden Zeichen. Es können weniger Zeichen gelesen werden, wenn die ...scanf-Funktion auf ein Whitespace-Zeichen oder ein nicht-auswertbares Zeichen trifft |
[ h | l | L ] | Optional | Argumenttypmodifikation |
h = short int | ||
l = long int, wenn Typzeichen eine Integer-Konvertierung festlegt | ||
l =double, wenn Typzeichen eine Gleitkommakonvertierung festlegt | ||
L=long double (nur mit Gleitkommakonvertierung zulässig) | ||
Typzeichen | Muß | Typzeichen |
Breitenangabe :
Die Breitenangabe (n), ein dezimaler Integer-Wert, gibt die maximale
Anzahl von Zeichen an, die vom aktuellen Eingabefeld gelesen werden sollen.
Es werden bis zu n Zeichen gelesen, konvertiert und im Argument der aktuellen
Adresse gespeichert. Wenn das Eingabefeld weniger als n Zeichen enthält,
liest die scanf-Funktion alle Zeichen im Feld und fährt dann mit dem
nächsten Feld und der nächsten Formatieranweisung fort. Die Auswirkungen
der Suche nach zeichenmässiger Übereinstimmung und die Auswirkungen
der unterdrückten Zuweisungen sind nicht exakt bestimmbar. Wenn die
scanf-Funktion auf ein Whitespace-Zeichen oder ein nicht-konvertierbares
Zeichen trifft, ehe sie "Breite" Zeichen gelesen hat, werden die bis dahin
gelesenen Zeichen gelesen, konvertiert und gespeichert, woraufhin die nächste
Formatieranweisung gesucht wird.
Ein nicht-konvertierbares Zeichen ist eines, das nicht im angegebenen Format konvertiert werden kann (8 oder 9 im oktalen Format; J oder K im hexadezimalen oder dezimalen Format usw.).
Argumenttypmodifikationen :
Diese Modifikation bestimmt, wie scanf-Funktionen einen entsprechendes
Adressenargument interpretieren. Argumenttypmodifikationen zeigen an, in
welchem Typ die folgenden Eingabedaten gelesen werden (h = short, l = long,
L = long double). Die Eingabedaten werden wie angegeben konvertiert und
das Argument für diese Eingabedaten sollte auf ein Objekt von entsprechender
Grösse zeigen.
Modifikation | Typ | Konvertierung in ... |
h | d i o u x | short int |
l | d i o u x | long int |
L | e f g | long double |
Typzeichen :
Die Information in der folgenden Tabelle basiert auf der Annahme, daß
keine optionalen Zeichen, Anweisungen oder Modifikationen (*, Breite oder
Grösse) in der Formatieranweisung enthalten sind.
Typ | Erwartete Eingabe | Argumenttyp |
d | Dezimal Integer | Zeiger auf int (int *arg) |
D | Dezimal Integer | Zeiger auf long (long *arg) |
e, E | Gleitkomma | Zeiger auf float (float *arg) |
f | Gleitkomma | Zeiger auf float (float *arg) |
g, G | Gleitkomma | Zeiger auf float (float *arg) |
o | Oktal Integer | Zeiger auf int (int *arg) |
O | Oktal Integer | Zeiger auf long (long *arg) |
i | Dezimal, oktal oder hexadezimal Integer | Zeiger auf int (int *arg) |
I | Dezimal, oktal, oder hexadezimal Integer | Zeiger auf long (long *arg) |
u | Dezimal Integer vorzeichenlos | Zeiger auf unsigned int (unsigned int *arg) |
U | Dezimal Integer vorzeichenlos | Zeiger auf unsigned long (unsigned long *arg) |
x | Hexadezimal Integer | Zeiger auf int (int *arg) |
X | Hexadezimal Integer | Zeiger auf int (int *arg) |
s | Zeichen-String | Zeiger auf Array mit Zeichen (char arg[]) |
c | Zeichen | Zeiger auf char (char *arg), wenn eine Feldbreite zusammen mit dem Zeichen c (z.B. %5c) gegeben ist. Zeiger auf Array mit W-Zeichen (char arg[W]) |
% | %-Zeichen | Keine Konvertierung; % wird gespeichert |
n | int * | Die Anzahl der erfolgreich gelesenen Zeichen (bis zu %n) wird in int gespeichert |
p | Hexadezimale Form | Zeiger auf ein Objekt |
Regeln für Suchmengenbereiche: