isprint

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.



ispunct

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.



isspace

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.



isupper

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.



isxdigit

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.



itoa

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.



kbhit

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.



labs

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.



ldexp

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.



ldexpl

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.



ldiv

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.



localtime

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.



log

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.



log10

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.



log10l

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.



logl

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.



lseek

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.



ltoa

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.



malloc

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.



memchr

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.



memcmp

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.



memcpy

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.



memmove

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.



memset

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.



mktime

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.



modf

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.



modfl

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.



open

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

die Datei XMP im binären Modus für einen Nur-Lesen-Zugriff und kürzt Sie - falls sie bereits existiert - auf 0 Bytes. Für den Parameter access sind zwei Arten von Flag-Konstanten in fcntl.h definiert, die über eine ODER-Operation miteinander verbunden werden müssen. Aus der ersten der beiden folgenden Listen muß genau ein Flag verwendet werden. Die restlichen Flags können in jeder logischen Kombination verwendet werden.

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
 
Wird weder O_BINARY noch O_TEXT angegeben, wird die Datei in dem in _fmode gesetzten Modus 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



outp

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.



outpw

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.



pow

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



pow10

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.



pow10l

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.



powl

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



printf

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-Zeichen :
Die Flag-Zeichen können in jeder beliebigen Reihenfolge und Kombination auftreten.
 
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
 
Die Option (+) hat vor der Option Leerzeichen( ) Vorrang, wenn beide zusammen gesetzt sind.

Breitenangaben :
Die Breitenangabe legt die minimale Zahl auszugebender Zeichen fest. Die Breite kann auf zwei Arten festgelegt werden:

Bei der Verwendung von * erwartet printf ein zusätzliches Argument, das in der Liste direkt vor dem auszugebenden Wert stehen und den Typ int haben muß.

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äzisionsangaben :
Die printf -Präzisionsangaben setzen die maximale Anzahl der zu druckenden Zeichen (oder die miminale Anzahl von Integer-Ziffern). Eine printf-Präzisionsangabe wird immer mit einem Dezimalpunkt (.) eingeleitet und so von einer eventüll vorangestellten Breitenangabe getrennt. Dann wird wie bei [Breite] die Präzision auf eine von zwei Arten angegeben:

Wenn Sie ein (*) für die Präzisionsangabe verwenden, gibt das nächste Argument im Aufruf (als int behandelt) die Präzision an. Wenn Sie Sternchen für die Breite, für die Präzision oder für beides verwenden, muß das Breitenargument unmittelbar hinter den Angaben folgen, danach das Präzisionsargument und schließlich das Argument für die zu konvertierenden Daten.
 
[.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
 
Für ein Feld wird kein numerisches Zeichen ausgegeben (d.h., das Feld ist leer), wenn die folgenden Bedingungen zutreffen:  
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
 
Grössenmodifizierer :
Die folgenden Modifizierer legen fest, wie printf-Funktionen das nächste Argument interpretieren.
 
Modifizierer  Typzeichen Wirkung auf Interpretation
d, i, o, u, x, X  short int
d, i, o, u, x, X long int 
E, f, g, G double
L e, E, f, g, G long double 
 
Diese Modifizierer legen fest, wie alle printf-Funktionen den Datentyp des korrespondierenden Eingabearguments arg interpretieren. h, l und L überschreiben die Standardgrösse der numerischen Dateneingabeargumente. Weder h noch l beeinflussen Zeichen- (c,s) oder Zeigertypen (p,n).

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 
 
Unendlich große positive oder negative Gleitkommazahlen werden als +INF bzw. als -INF ausgegeben, eine "IEEE-Nichtzahl" als +NAN oder -NAN.



putc

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.



putchar

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.



puts

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.



qsort

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.

fcmp übernimmt die beiden Argumente elem1 und elem2. Beide sind Zeiger auf Elemente des Array. Die Vergleichsfunktion vergleicht die beiden Elemente (*elem1 und *elem2) und liefert einen Integerwert als Ergebnis zurück:

*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.



rand

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.



read

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



realloc

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.



remove

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



rename

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



rewind

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.



scanf

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:

Für jedes Eingabefeld muß eine Formatieranweisung und Adresse existieren. Eine scanf-Funktion kann mit dem Lesen eines Eingabefeldes oder mit dem gesamten Lesen vorzeitig abbrechen, ehe ein Feldendezeichen (Whitespace) erreicht wird.

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:

Jede Formatieranweisung beginnt mit dem Prozentzeichen (%). Danach folgen in der unten stehenden Reihenfolge:
 
 
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
 
Zeichen für Zuweisungsunterdrückung :
Das Zeichen für die Zuweisungsunterdrückung ist ein Stern (*), nicht zu verwechseln mit dem Zeiger-Operator * von C. Wenn in einer Formatieranweisung dem Prozentzeichen ein Stern folgt, wird das nächste Eingabefeld gelesen, jedoch nicht dem nächsten Adressenargument zugewiesen. Es wird davon ausgegangen, daß die unterdrückten Eingabedaten von dem Typ sind, die das Typzeichen nach dem Stern angibt.

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 
 
Suchmengenkonvertierung (%[Zeichen]) :
Eine Menge von Zeichen in eckigen Klammern kann Zeichen des s-Typs ersetzen. Das Argument der Adresse ist ein Zeiger auf ein Array von Zeichen (char arg[]). Diese Klammern schließen eine Menge von Zeichen ein, die eine Suchmenge von möglichen Zeichen für die Eingabe angeben. Wenn das erste Zeichen in Klammern ein Caret (^) ist, wird die Suchmenge invertiert, so daß alle ASCII-Zeichen ausser solchen in Klammern zulässig sind. Ein Caret wird normalerweise in die invertierte Suchmenge einbezogen, ausser, es wird ausdrücklich nach dem ersten Caret aufgelistet).
Das Eingabefeld ist ein String, der nicht durch ein Whitespace-Zeichen begrenzt ist. Die Funktion ...scanf liest das entsprechende Eingabefeld, bis sie das erste Zeichen erreicht, das nicht in der Suchmenge enthalten ist.

Regeln für Suchmengenbereiche:

  1. Das Zeichen vor dem Bindestrich (-) muß lexikalisch kleiner als das darauf folgende sein.
  2. Der Bindestrich darf weder das erste noch das letzte Zeichen sein. (Wenn der Bindestrich an erster oder letzter Stelle steht, wird der Bindestrich als Trennzeichen und nicht als Bereichsbezeichnung betrachtet).
  3. Die Zeichen zu beiden Seiten des Bindestrichs müssen die Enden eines Bereichs und nicht Teil eines anderen Bereichs sein.

 <Vorherige Seite><Nächste Seite>