setbuf

Prototyp : void setbuf(FILE *stream, char *buf);
Header : <stdio.h>

Beschreibung :
setbuf ordnet der durch stream angegebenen Datei den Puffer buf anstelle des automatisch vergebenen Puffers zu. Die Minimalgrösse von buf ist durch die in stdio.h definierte Konstante BUFSIZ festgelegt. Die Funktion kann nur angewendet werden, wenn die Datei bereits offen ist. Die Angabe des Zeigerwertes NULL für buf bewirkt, daß folgende Ein-/Ausgaben über stream ungepuffert arbeiten, d.h. Ausgaben geschehen sofort, Eingaben werden direkt vom entsprechenden Gerät gelesen. stdin und stdout arbeiten ungepuffert, wenn sie nicht umgeleitet sind. Umleitungen bewirken dagegen normalerweise eine Pufferung, die mit setbuf verändert werden kann.

Die Pufferung von Ein- und Ausgaben bedeutet: Ausgaben werden zeichenweise zwischengespeichert und blockweise geschrieben. Eingaben werden blockweise von der Datei bzw. dem Gerät gelesen und danach zeichenweise aus dem Puffer gelesen.

setbuf darf nur direkt nach dem Öffnen (oder direkt nach einem fseek-Aufruf) auf einen Stream angewendet werden, da die Ergebnisse ansonsten unvorhersehbar sind. Die Anwendung dieser Funktion auf ungepufferte Dateien ist dagegen problemlos und jederzeit möglich.

Für buf kann eine lokale Variable verwendet werden. Man sollte allerdings in diesem Fall streng darauf achten, die Datei vor dem Ende der entsprechenden Funktion wieder zu schließen.

Rückgabewert :
Keiner.



sin

Prototyp : double sin(double x);
Header: <math.h>

Beschreibung :
sin erwartet einen Winkel in der Einheit rad als Argument und liefert den dazugehörigen Sinus zurück.

Rückgabewert :
sin liefert den Sinus des Eingabewertes.



sinh

Prototyp : double sinh(double x);
Header : <math.h>

Beschreibung :
sinh berechnet den Sinus hyperbolicus, .

Rückgabewert :
sinh liefert den Sinus hyperbolicus von x zurück. Bei Fehlern liefert sinh HUGE_VAL zurück und die globale Variable errno erhält den Wert EDOM.



sinl

Prototyp : long double sinl(long double x);

Header: <math.h>

Beschreibung :
sinl erwartet einen Winkel in der Einheit rad als Argument und liefert den dazugehörigen Sinus zurück.

Rückgabewert :
sinl liefert den Sinus des Eingabewertes.



sopen

Prototyp : int sopen(const char *path, int access, int shflag[, int mode]);
Header : <io.h>

Beschreibung :
sopen öffnet die durch path angegebene Datei und bereitet je nach den für access, shflag und mode angegebenen Werten die Datei für gemeinsame Lese- und/oder Schreibzugriffe vor. access wird dabei durch die bitweise ODER-Verknüpfung der in den folgenden beiden Tabellen aufgeführten Flags gebildet. Von der ersten Tabelle darf nur ein Flag benutzt werden. Die Flags der zweiten Tabelle dürfen dagegen in jeder logischen Kombination verwendet werden.

Flags für Lesen und/oder Schreiben :

O_RDONLY  Nur Lesen
O_WRONLY  Nur Schreiben
O_RDWR    Lesen und Schreiben

Weitere Zugriff-Flags :
 
O_APPEND Falls gesetzt, wird der Dateizeiger vor jedem Schreibzugriff an das Dateiende gesetzt.
O_CREAT Falls die Datei bereits existiert, hat dieses Flag keine Wirkung. Wenn die Datei noch nicht existiert, wird sie erzeugt und die Dateiattribute werden anhand der in mode gesetzten Bits festgelegt.
O_TRUNC Wenn die Datei bereits existiert, wird ihr vorheriger Inhalt gelöscht. Die Dateiattribute bleiben unverändert. 
O_EXCL Wird nur zusammen mit O_CREAT verwendet. Falls die Datei bereits existiert, wird ein Fehler zurückgeliefert. 
O_BINARY Die Datei wird im Binärmodus geöffnet.. 
O_TEXT Die Datei wird im Textmodus geöffnet. 
O_NOINHERIT  Die Datei wird nicht an Kindprozesse weitergegeben.. 
 
Die symbolischen Konstanten O_... sind in fcntl.h definiert.

Wenn weder O_BINARY noch O_TEXT angegeben ist, wird die Datei in dem Modus, der durch die globale Variable _fmode gesetzt ist, geöffnet. Bei der Verwendung von O_CREAT (d.h. der Erzeugung einer neuen Datei) bei der Bildung von access muß das Argument mode auf eine der folgenden symbolischen Konstanten gesetzt werden; diese sind in sys\stat.h definiert sind:

Wert von mode Zugriffserlaubnis

S_IWRITE            Schreiben erlaubt
S_IREAD             Lesen erlaubt
S_IREAD | S_IWRITE  Lesen und Schreiben erlaubt

shflag legt den Typ des gemeinsamen Zugriffs, der auf die Datei path angewendet werden soll, fest. Die symbolischen Konstanten für shflag sind in share.h festgelegt.

SH_COMPAT    Setzt Kompatibilitätsmodus
SH_DENYRW    Lesen und Schreiben nicht erlaubt
SH_DENYWR    Schreiben nicht erlaubt
SH_DENYRD    Lesen nicht erlaubt
SH_DENYNONE  Lesen und Schreiben erlaubt
SH_DENYNO    Lesen und Schreiben erlaubt

Rückgabewert :
Wenn die Datei fehlerfrei geöffnet werden konnte, liefert die Funktion das Handle dieser Datei zurück (einen Integerwert grösser als Null, über den weitere Operationen mit dieser Datei ausgeführt werden). Der Dateizeiger wird auf den Dateianfang gesetzt. Im Fehlerfall liefert die Funktion den Wert -1 und setzt die globale Variable errno auf einen der folgenden Werte:

EACCES  Zugriff nicht gestattet
EMFILE  Zu viele Dateien geöffnet
ENOENT  Pfad/Datei nicht vorhanden



sprintf

Prototyp : int sprintf(char *buffer, const char *format[, argument, ...]);
Header : <stdio.h>

Beschreibung :
sprintf übernimmt eine Reihe von Argumenten, auf die jeweils eine Formatieranweisung angewendet wird. Die Formatieranweisungen sind in dem String enthalten, auf den format zeigt. Die so formatierten Daten werden in den durch buffer angegebenen String geschrieben. sprintf wendet die erste Formatieranweisung auf das erste Argument an, die zweite auf das zweite Argument usw. Die Anzahl der Formatieranweisungen und die der Argumente muß übereinstimmen.

Weitere Details über Formatieranweisungen finden Sie unter printf.

Rückgabewert :
sprintf liefert die Anzahl der ausgegebenen Zeichen zurück, wobei das abschließende Nullzeichen nicht mitgezählt wird. Im Fehlerfall ist das Funktionsergebnis EOF.



sqrt

Prototyp : double sqrt(double x);
Header : <math.h>

Beschreibung :
sqrt berechnet die positive Quadratwurzel des Arguments x.

Rückgabewert :
sqrt liefert die positive Quadratwurzel des Arguments, wenn x eine reelle Zahl und positiv ist. Ist x reell und negativ, wird die globale Variable errno auf den Wert

EDOM Bereichsfehler

gesetzt.



sqrtl

Prototyp : long double sqrtl(long double x);
Header : <math.h>

Beschreibung :
sqrtl berechnet die positive Quadratwurzel des Arguments x.

Rückgabewert :
sqrtl liefert die positive Quadratwurzel des Arguments, wenn x eine reelle Zahl und positiv ist. Ist x reell und negativ, wird die globale Variable errno auf den Wert

EDOM Bereichsfehler

gesetzt.



srand

Prototyp : void srand(unsigned seed);
Header : <stdlib.h>

Beschreibung :
Initialisiert den Zufallszahlengenerator. Dieser wird beim Aufruf von srand mit dem seed == 1 neu initialisiert. Durch den Aufruf von srand mit einem bestimmten Parameter seed kann er auf einen neuen Startwert gesetzt werden.

Rückgabewert :
Keiner.



sscanf

Prototyp : int sscanf(const char *buffer, const char *format[, address, ...]);
Header : <stdio.h>

Beschreibung :
sscanf liest eine Reihe von Eingabefeldern zeichenweise aus dem durch buffer angegebenen String. Auf jedes Feld wird dann die entsprechende Formatieranweisung angewendet, die im durch format angegebenen Format-String enthalten ist. Gelesene Eingaben werden an den Adressen gespeichert, die in den Parametern hinter format übergeben werden. Die Anzahl von Eingabefeldern muß mit der Anzahl von Formatieranweisungen und Adressen übereinstimmen. sscanf kann das Lesen eines bestimmten Eingabefeldes abbrechen, bevor das normale Feldende (ein Whitespace-Zeichen) erreicht ist. sscanf kann auch aus verschiedenen Gründen den Lesevorgang vollständig abbrechen. Die möglichen Ursachen hierfür werden unter scanf erläutert.

Details zu Formatieranweisungen finden Sie unter scanf.

Rückgabewert :
sscanf liefert die Anzahl der fehlerfrei gelesenen, konvertierten und gespeicherten Felder zurück. Gelesene, aber nicht gespeicherte Felder werden nicht mitgezählt. Der Versuch, über das Ende des Strings hinauszulesen, liefert den Wert EOF.Wurden keine Felder gespeichert, so wird 0 zurückgeliefert.



strcat

Prototyp : char *strcat(char *dest, const char *src);
Header : <string.h>

Beschreibung :
strcat hängt sämtliche Zeichen von src an die bereits in dest vorhandenen Zeichen an. Die Länge des resultierenden Strings ist strlen(dest) + strlen(src).

Rückgabewert :
Zurückgeliefert wird ein Zeiger auf den zusammengefügten String.



strchr

Prototyp : char *strchr(const char *s, int c);
Header : <string.h>

Beschreibung :
strchr sucht den über s angegebenen String nach dem Zeichen c ab, wobei die Suche mit dem ersten Zeichen von s beginnt. strchr findet die erste Fundstelle des Zeichens c im String s. Das abschließende Nullzeichen wird zum Inhalt des String gezählt und als letztes verglichen, so daß ein Aufruf wie :

strchr(strs,0)

einen Zeiger auf das abschließende Nullzeichen von strs liefert.

Rückgabewert :
strchr liefert einen Zeiger auf die erste Fundstelle des Zeichens c im String s zurück bzw. den Wert NULL, wenn der String dieses Zeichen nicht enthält.



strcmp

Prototyp : int strcmp(const char *s1, const char *s2);
Header : <string.h>

Beschreibung :
strcmp führt mit den Inhalten von s1 und s2 einen unsigned-Vergleich durch. Beginnend mit dem ersten Zeichen werden die beiden Strings zeichenweise verglichen, bis zwei korrespondierende Zeichen ungleich sind oder das Ende der Strings erreicht wird.

Rückgabewert :
strcmp liefert einen Wert

< 0  wenn s1 kleiner als s2 ist
== 0 wenn s1 gleich s2 ist
> 0  wenn s1 grösser als s2 ist



strcmpi

Prototyp : int strcmpi(const char *s1, const char *s2);
Header : <string.h>

Beschreibung :
strcmpi führt mit den Inhalten von s1 und s2 einen unsigned-Vergleich durch. Beginnend mit dem ersten Zeichen wird solange zeichenweise verglichen, bis die korrespondierenden Zeichen ungleich sind oder das Ende der Strings erreicht wird. Beim Vergleich werden Gross- und Kleinbuchstaben nicht unterschieden. Zurückgeliefert wird ein Wert(<0, 0 oder >0) der auf dem Vergleich von s1 (oder eines Teils davon) mit s2 (oder eines Teils davon) basiert.

Die Routinen stricmp und strcmpi erfüllen dieselbe Funktion. strcmpi ist ein in string.h implementiertes Makro, das Aufrufe von strcmpi in Aufrufe von stricmp übersetzt. Daher müssen Sie die Header-Datei string.h einbinden, wenn Sie das Makro strcmpi verwenden wollen.

Rückgabewert :
strcmpi liefert einen Wert

< 0  wenn s1 kleiner als s2 ist
== 0 wenn s1 gleich s2 ist
> 0  wenn s1 grösser als s2 ist



strcoll

Prototyp : int strcoll(char *s1, char *s2);
Header : <string.h>

Beschreibung :
strcoll vergleicht den String, auf den s1 zeigt, mit dem String, auf den s2 zeigt.

Rückgabewert :
strcoll liefert folgende Rückgabewerte :

< 0  wenn s1 kleiner als s2 ist
== 0 wenn s1 gleich s2 ist
> 0  wenn s1 größer als s2 ist



strcpy

Prototyp : char *strcpy(char *dest, const char *src);
Header : <string.h>

Beschreibung :
strcpy kopiert den Inhalt des über src angegebenen Strings in den durch dest angegebenen Speicherbereich. Das abschließende Nullzeichen von src wird als letztes Zeichen kopiert.

Rückgabewert :
strcpy liefert dest zurück.



strcspn

Prototyp : size_t strcspn(const char *s1, const char *s2);
Header : <string.h>

Beschreibung :
Liefert die Länge des Teilstrings zurück, der keines der Zeichen einer bestimmten Zeichenmenge enthält. strcspn liest den String s1 zeichenweise bis eines der in s2 enthaltenen Zeichen auftritt. Die Anzahl der in s1 gelesenen Zeichen bildet den Rückgabewert. Das abschließende Nullzeichen wird nicht mitgezählt. Beide Strings werden durch den Suchvorgang nicht verändert.

Rückgabewert :
strcspn liefert die Länge des Teilstrings von s1 zurück, der nur aus Zeichen besteht, die in s2 nicht vorkommen.



stricmp

Prototyp : int stricmp(const char *s1, const char *s2);
Header : <string.h>

Beschreibung :
stricmp führt mit den Inhalten von s1 und s2 einen unsigned-Vergleich durch. Beginnend mit dem ersten Zeichen wird solange zeichenweise verglichen, bis die korrespondierenden Zeichen ungleich sind oder das Ende der Strings erreicht wird. Beim Vergleich werden Gross- und Kleinbuchstaben nicht unterschieden. Zurückgeliefert wird ein Wert(<0, 0 oder >0) der auf dem Vergleich von s1 (oder eines Teils davon) mit s2 (oder eines Teils davon) basiert.

Die Routinen stricmp und strcmpi erfüllen dieselbe Funktion. strcmpi ist ein in string.h implementiertes Makro, das Aufrufe von strcmpi in Aufrufe von stricmp übersetzt. Daher müssen Sie die Header-Datei string.h einbinden, wenn Sie das Makro strcmpi verwenden wollen.

Rückgabewert :
stricmp liefert einen Wert

< 0  wenn s1 kleiner als s2 ist
== 0 wenn s1 gleich s2 ist
> 0  wenn s1 grösser als s2 ist



strlen

Prototyp : size_t strlen(const char *s);
Header : <string.h>

Beschreibung :
strlen berechnet die Länge des durch s angegebenen Strings.

Rückgabewert :
strlen liefert die Anzahl der Zeichen des Strings s zurück. Das abschließende Nullzeichen wird dabei nicht mitgezählt.



strlwr

Prototyp : char *strlwr(char *s);
Header : <string.h>

Beschreibung :
strlwr konvertiert sämtliche Grossbuchstaben des durch s übergebenen Strings in Kleinbuchstaben. Andere Zeichen (insbesondere Umlaute) werden nicht berücksichtigt.

Rückgabewert :
strlwr liefert einen Zeiger auf den String s zurück.



strncat

Prototyp : char *strncat(char *dest, const char *src, size_t maxlen);
Header : <string.h>

Beschreibung :
strncat hängt die ersten maxlen Zeichen von src an die bereits in dest vorhandenen Zeichen an. Die Operation wird beendet, wenn entweder maxlen Zeichen kopiert wurden oder das Ende von src erreicht ist. Als letztes schreibt strncat grundsätzlich ein Nullzeichen in dest. Die maximale Länge des resultierenden Strings beträgt strlen(dest) + maxlen.

Rückgabewert :
strncat liefert dest zurück.



strncmp

Prototyp : int strncmp(const char *s1, const char *s2, size_t maxlen);
Header : <string.h>

Beschreibung :
strncmp führt den gleichen unsigned-Vergleich wie strcmp durch, vergleicht aber maximal die ersten maxlen Zeichen von s1 und s2 miteinander. Beginnend mit dem ersten Zeichen wird zeichenweise verglichen, bis die korrespondierenden Zeichen ungleich sind oder maxlen Zeichen untersucht worden sind.

Rückgabewert :
strncmp vergleicht s1 (oder einen Teil davon) mit s2 (oder einen Teil davon) und liefert aufgrund des Vergleichs einen Integerwert

< 0  wenn s1 kleiner als s2 ist
== 0 wenn s1 gleich s2 ist
> 0  wenn s1 größer als s2 ist.



strncmpi

Prototyp : int strncmpi(const char *s1, const char *s2, size_t n);
Header : <string.h>

Beschreibung :
strncmpi vergleicht (in einem signed-Vergleich) maximal n Zeichen von s1 und s2 miteinander. Es wird kein Unterschied zwischen Groß- und Kleinschreibung gemacht. Beginnend mit dem ersten Zeichen wird zeichenweise solange verglichen, bis die korrespondierenden Zeichen ungleich oder n Zeichen untersucht worden sind. Zurückgeliefert wird ein Wert (<0, 0 oder >0), der auf dem Vergleich von s1 (oder eines Teils davon) mit s2 (oder eines Teils davon) basiert.

Die Routinen strnicmp und strncmpi erfüllen dieselbe Funktion; strncmpi ist ein in string.h implementiertes Makro, das Aufrufe von strncmpi in Aufrufe von strnicmp übersetzt. strncmpi wurde aus Kompatibilitätsgründen zu anderen Compilern definiert. Um strncmpi zu verwenden, muß daher die Header-Datei string.h eingebunden werden.

Rückgabewert :
strncmpi liefert einen Wert

< 0  wenn s1 kleiner als s2 ist
== 0 wenn s1 und s2 gleich sind
> 0  wenn s1 größer als s2 ist



strncpy

Prototyp : char *strncpy(char *dest, const char *src, size_t maxlen);
Header : <string.h>

Beschreibung :
Kopiert eine bestimmte Anzahl von Bytes von einem String in einen anderen, wobei strncpy kopiert bis zu maxlen Zeichen des über src angegebenen Strings in den durch dest angegebenen Speicherbereich. strncpy schreibt immer genau maxlen Zeichen - wenn src weniger als maxlen Zeichen enthält, wird eine entsprechende zusätzliche Anzahl von Nullzeichen in dest angehängt. Wenn src mehr als maxlen Zeichen umfasst, bleibt der nach dest kopierte String ohne ein abschließendes Nullzeichen.

Rückgabewert :
strncpy liefert dest zurück.



strnicmp

Prototyp : int strnicmp(const char *s1, const char *s2, size_t n);
Header : <string.h>

Beschreibung :
strnicmp vergleicht (in einem signed-Vergleich) maximal n Zeichen von s1 und s2 miteinander. Es wird kein Unterschied zwischen Gross- und Kleinschreibung gemacht. Beginnend mit dem ersten Zeichen wird zeichenweise solange verglichen, bis die korrespondierenden Zeichen ungleich oder n Zeichen untersucht worden sind. Zurückgeliefert wird ein Wert (<0, 0 oder >0), der auf dem Vergleich von s1 (oder eines Teils davon) mit s2 (oder eines Teils davon) basiert.

Die Routinen strnicmp und strncmpi erfüllen dieselbe Funktion; strncmpi ist ein in string.h implementiertes Makro, das Aufrufe von strncmpi in Aufrufe von strnicmp übersetzt. strncmpi wurde aus Kompatibilitätsgründen zu anderen Compilern definiert.

Rückgabewert :
strnicmp liefert einen Wert

< 0  wenn s1 kleiner als s2 ist
== 0 wenn s1 und s2 gleich sind
> 0  wenn s1 größer als s2 ist



strpbrk

Prototyp : char *strpbrk(const char *s1, const char *s2);
Header : <string.h>

Beschreibung :
strpbrk sucht den über s1 angegebenen String nach dem ersten Vorkommen eines in s2 enthaltenen Zeichens ab.

Rückgabewert :
Die Funktion liefert einen Zeiger auf die erste Fundstelle eines Zeichens aus s2 zurück. Erscheint kein Zeichen aus s2 in s1, dann liefert strpbrk den Wert NULL zurück.



strrchr

Prototyp : char *strrchr(const char *s, int c);
Header : <string.h>

Beschreibung :
strrchr sucht den über s angegebenen String nach dem Zeichen c ab, wobei die Suche mit dem letzten Zeichen von s beginnt. Das abschließende Nullzeichen wird zum Stringinhalt gerechnet und als erstes verglichen.

Rückgabewert :
strrchr liefert einen Zeiger auf das letzte Vorkommen des Zeichens c in s zurück bzw. den Wert NULL, wenn der String dieses Zeichen nicht enthält.



strspn

Prototyp : size_t strspn(const char *s1, const char *s2);
Header : <string.h>

Beschreibung :
Beginnend mit dem ersten Zeichen überprüft die Funktion strspn, ob die Zeichen in s1 Bestandteil von s2 sind. Die Funktion stoppt beim ersten Zeichen von s1, das nicht in s2 enthalten ist.

Rückgabewert :
strspn liefert die Länge des Teilstrings von s1, der ausschließlich aus Zeichen besteht, die in s2 enthalten sind.



strstr

Prototyp : char *strstr(const char *s1, const char *s2);
Header : <string.h>

Beschreibung :
strstr sucht den über s1 angegebenen String nach dem ersten Vorkommen des Teilstrings s2 ab.

Rückgabewert :
strstr liefert einen Zeiger auf den Beginn von s2 in s1 zurück bzw. den Zeigerwert NULL, wenn s2 in s1 überhaupt nicht vorkommt.



strtod

Prototyp : double strtod(const char *s, char **endptr);
Header : <stdlib.h>

Beschreibung :
strtod konvertiert den durch s angegebenen String in einen double-Wert. Der Inhalt des String muß daher als double interpretierbar sein und das folgende Format haben:

strtod erkennt ausserdem +INF und -INF für plus bzw. minus unendlich sowie +NAN und -NAN für Not-A-Number (keine darstellbare Zahl). Beispiele für gültige Angaben sind:

+ 435.2341 e-1
112.12E2
+ 9102.21

strtod bricht die Analyse beim ersten Zeichen ab, das nicht mehr als Teil eines double-Werts interpretiert werden kann. Solange der Parameter endptr nicht NULL ist, wird *endptr von strtod auf das Zeichen innerhalb von s gesetzt, durch das die Analyse abgebrochen wurde (*endptr = &abbruch_zeichen). endptr ist für die Fehlersuche nützlich.

Rückgabewert :
Diese Funktion liefert das Ergebnis der Konvertierung von s als double zurück. Im Falle eines Überlaufs wird plus oder minus HUGE_VAL zurückgeliefert.



strtok

Prototyp : char *strtok(char *s1, const char *s2);
Header : <string.h>

Beschreibung :
strtok betrachtet den über s1 angegebenen String als Folge von Null oder mehr Zeichenfolgen (Token), die voneinander durch eines oder mehrere der in s2 definierten Zeichen getrennt sind. Der erste Aufruf von strtok liefert einen Zeiger auf den Beginn der ersten gefundenen Zeichenfolge in s1 zurück und setzt ein Nullzeichen unmittelbar hinter das Ende der Zeichenfolge. Folgende Aufrufe von strtok mit dem Wert NULL anstelle des Arguments s1 liefern die restlichen Zeichenfolgen in s1. s2 kann bei jedem Aufruf von strtok beliebig geändert werden.

Rückgabewert :
strtok liefert einen Zeiger auf den Beginn der gefundenen Zeichenfolge in s1 zurück. Wenn keine weitere Zeichenfolge gefunden wird, ist der Rückgabewert NULL.



strtol

Prototyp : long strtol(const char *s, char **endptr, int radix);
Header : <stdlib.h>

Beschreibung :
strtol konvertiert den durch s angegebenen String in einen long-Wert. Der Stringinhalt muß daher als long-Wertinterpretierbar sein und das folgende Format haben:

strtol bricht den Lesevorgang ab, wenn ein Zeichen nicht dem obigen Format entspricht. Liegt radix zwischen 2 und 36, so wird s im Zahlensystem zur Basis radix interpretiert. Ist radix 0, so legen die ersten Zeichen von s die verwendete Basis fest:
 
Erstes Zeichen Zweites Zeichen Interpretation
0 1 bis 7 Oktalsystem
0 x oder X Hexadezimalsystem
1 bis 9 Dezimalsystem
 
Ist radix gleich 1, kleiner als 0 oder grösser als 36, so wird der Parameter als ungültiger Wert interpretiert. Bei Ausgabe ungültiger Werte für radix liefert die Funktion Null zurück und setzt den Zeiger *endptr auf den Stringanfang. Falls der Wert in s als Oktalzahl interpretiert werden soll, werden nur die Zeichen zwischen 0 und 7 erkannt. Soll der Wert in s als Dezimalzahl interpretiert werden, werden nur die Zeichen 0 bis 9 erkannt. Falls der Wert in s als Zahl eines Zahlensystems zu einer anderen Basis interpretiert werden soll, werden nur die Zeichen, die zur Repräsentation von Zahlen dieses Zahlensystems verwendet werden, erkannt. (Beispielsweise nur die Zeichen 0 bis 4, wenn radix gleich 5 ist, ist radix gleich 20, werden nur die Zeichen 0 bis 9 und A bis J erkannt.)

Wenn endptr ungleich NULL ist, dann wird *endptr auf die Adresse des ersten nicht analysierbaren Zeichens in s gesetzt (*endptr = &abbruch_zeichen).

Rückgabewert :
strtol liefert das Ergebnis der Konvertierung als long-Wert, im Fehlerfall den Wert 0 zurück.



strtoul

Prototyp : unsigned long strtoul(const char *s, char **endptr, int radix);
Header : <stdlib.h>

Beschreibung :
strtoul arbeitet genauso wie strtol, konvertiert die durch s angegebene Zeichenfolge aber in einen unsigned long-Wert (siehe Beschreibung zu strtol).

Rückgabewert :
strtoul liefert das Ergebnis der Konvertierung als unsigned long-Wert, im Fehlerfall den Wert 0 zurück.



strupr

Prototyp : char *strupr(char *s);
Header : <string.h>

Beschreibung :
strupr konvertiert die Kleinbuchstaben des durch s angegebenen Strings in Grossbuchstaben. Alle anderen Zeichen (insbesondere die deutschen Umlaute) bleiben unverändert.

Rückgabewert :
strupr liefert s zurück.



system

Prototyp : int system(const char *command);
Header : <stdlib.h>

Beschreibung :
system ruft innerhalb eines ausgeführten C-Programms den Kommandozeileninterpreter des Betriebssystems zur Ausführung eines Befehls, einer Batch-Datei oder eines Programms auf. Dazu wird ihm der String command als Kommandozeile übergeben.

Aufgerufene Programme müssen sich im aktuellen Verzeichnis bzw. in einem in der Umgebungsvariable PATH aufgeführten Verzeichnis befinden. Der Kommandozeileninterpreter wird mit Hilfe der Umgebungsvariable COMSPEC gefunden, so daß sich die Datei des Kommandozeileninterpreters nicht im aktuellen Verzeichnis befinden muß.

Rückgabewert :
system liefert einen Wert ungleich Null, falls command ein NULL-Zeiger ist und der Kommandozeileninterpreter zur Verfügung steht. Ist command kein NULL-Zeiger, so liefert system den Wert 0 zurück, falls der Kommandozeileninterpreter erfolgreich gestartet wurde. Im Fehlerfall wird der Wert -1 zurückgeliefert und errno auf einen der folgenden Werte gesetzt:

ENOENT   Pfad/Dateiname nicht gefunden
ENOEXEC  exec-Formatfehler
ENOMEM   Nicht genug Platz im Hauptspeicher
E2BIG    Kommandozeile ist zu lang



tan

Prototyp : double tan(double x);
Header : <math.h>

Beschreibung :
tan erwartet einen Winkel in der Einheit rad als Argument und liefert den dazugehörigen Tangens (sin(x)/cos(x)) zurück.

Rückgabewert :
tan liefert den Tangens von x zurück.



tanh

Prototyp : double tanh(double x);
Header : <math.h>

Beschreibung :
tanh berechnet den Tangens hyperbolicus (sinh(x) / cosh(x)).

Rückgabewert :
tanh liefert den Tangens hyperbolicus von x.



tanl

Prototyp : long double tanl(long double x);
Header : <math.h>

Beschreibung :
tanl erwartet einen Winkel in der Einheit rad als Argument und liefert den dazugehörigen Tangens (sin(x)/cos(x)) zurück.

Rückgabewert :
tanl liefert den Tangens von x zurück.



tell

Prototyp : long tell(int handle);
Header : <io.h>

Beschreibung :
tell liefert die aktuelle Position des Dateizeigers innerhalb der durch handle bezeichneten Datei als Byte-Zahl relativ zum Dateianfang zurück.

Rückgabewert :
tell liefert die aktuelle Position des Dateizeigers innerhalb der angegebenen Datei als long-Wert zurück. Im Fehlerfall wird -1 zurückgeliefert und die globale Variable errno erhält den Wert:

EBADF Ungültiges Handle



time

Prototyp : time_t time( time_t *t );
Header : <time.h>

Beschreibung :
time setzt die mit t übergebene Variable auf die Anzahl der Sekunden, die seit dem 1. Januar 1970, 00:00:00 Uhr (Greenwich Mean Time) verstrichen sind, sofern t nicht NULL ist.

Rückgabewert :
time liefert die Anzahl der seit dem 1.1.1970, 00:00:00 Uhr verstrichenen Sekunden zurück.



toascii

Prototyp : int toascii(int c);
Header : <ctype.h>

Beschreibung :
toascii ist ein Makro, das den übergebenen Wert c (durch Löschen aller Bits, ausser den 7 niederwertigsten) auf den Bereich 0 bis 127 begrenzt und das Ergebnis dieser Operation zurückliefert.

Rückgabewert :
Das Makro liefert das Ergebnis der Konvertierung von c als Wert vom Typ int zurück.



tolower

Prototyp : int tolower(int c);
Header : <ctype.h>

Beschreibung :
tolower ist eine Funktion, die das als Integerwert übergebene Zeichen c (ein Wert im Bereich von EOF bis 255) in einen Kleinbuchstaben umwandelt.

Rückgabewert :
Liefert bei großen Buchstaben den umgewandelten Wert von c zurück, ansonsten wird das Zeichen unverändert zurückgeliefert.



toupper

Prototyp : int toupper(int c);
Header : <ctype.h>

Beschreibung :
toupper ist eine Funktion, die das als Integerwert übergebene Zeichen c (ein Wert im Bereich von EOF bis 255) in einen Großbuchstaben umwandelt.

Rückgabewert :
Falls c ein Kleinbuchstabe ist, wird der umgewandelte Wert zurückgeliefert. Ansonsten wird das Zeichen unverändert zurückgeliefert.



tzset

Prototyp : void tzset( void );
Header : <time.h>

Beschreibung :
Die Funktion tzset analysiert die Umgebungsvariable TZ und setzt die globalen Variablen _daylight, _timezone und _tzname gemäß deren Inhalt. Diese drei Variablen werden von localtime verwendet, um die Greenwich Mean Time (GMT) an die lokale Zeitzone anzupassen. Die Umgebungsvariable TZ muß in folgendem Format vorliegen :

   zzz[+|-]d[d][lll]

Das Feld zzz steht für den Namen der Zeitzone, der aus drei Buchstaben bestehen muß. Das optionale Feld [+/-]d[d] steht für die Abweichung von der Weltstandardzeit (Greenwich Mean Time, GMT) in Stunden, die durch einen Zahlenwert mit mindestens einer Ziffer (und ggf. einem Vorzeichen) angegeben wird. Die Verschiebung für Länder westlich des 0. Längengrades wird mit positiven Werten notiert (+5 entspricht z.B. der Zeitverschiebung von New York gegenüber Greenwich), für Zeitzonen östlich von Greenwich entstehen negative Werte (für die MEZ gilt z.B. -1). Dieser Wert wird zur Berechnung des Inhalts von _timezone verwendet, welche die Zeitdifferenz in Sekunden zwischen der Weltstandardzeit (GMT) und der Ortszeit darstellt. Das ebenfalls optionale Feld lll legt den Namen der lokalen Sommerzeitzone fest.
Wenn die Umgebungsvariable TZ nicht gesetzt wurde oder deren Inhalt nicht analysiert werden konnte, verwendet die Funktion den String EST (=Eastern Standard Time), Zeitverschiebung +5 Stunden zu GMT mit Berücksichtigung der Sommerzeit und trägt die ensprechenden Werte in _daylight, _timezone und _tzname ein.

Rückgabewert :
Keiner.



ultoa

Prototyp : char *ultoa(unsigned long value, char *string, int radix);
Header : <stdlib.h>

Beschreibung :
Die Funktion konvertiert den übergebenen Wert value in einen nullterminierten String und speichert das Ergebnis in der durch string bezeichneten Variablen. ultoa erwartet einen Wert vom Typ unsigned long in value. Der Parameter radix legt die Basis fest, zu der die Konvertierung stattfinden soll - mögliche Werte liegen im Bereich von 2 bis 36. ultoa prüft nicht auf Überlauf; wenn radix den Wert 10 hat und value kleiner als Null ist, stellt ultoa dem Ergebnis kein Minuszeichen voran.

Der durch string übergebene String muß in allen Fällen lang genug sein, um das Ergebnis der Konvertierung inklusive des abschließenden Nullzeichens (\0) aufnehmen zu können. ultoa kann maximal 33 Zeichen zurückgeben.

Rückgabewert :
Die Funktion liefert string zurück.



ungetc

Prototyp : int ungetc(int c, FILE *stream);
Header : <stdio.h>

Beschreibung :
ungetc stellt ein Zeichen für eine erneute Leseoperation zurück in den Eingabe-Stream stream, der für Leseoperationen geöffnet sein muß. Ein Zeichen kann jederzeit zurückgestellt und später mit getc oder fread wieder gelesen werden. Es kann immer nur ein Zeichen zurückgestellt werden - ein zweiter Aufruf von ungetc ohne ein dazwischenliegendes getc überschreibt das zuvor zurückgestellte Zeichen. Die Anwendung von fflush, fseek, fsetpos oder rewind auf eine Datei löscht deren Puffer und damit auch ein eventuell mit ungetc zurückgestelltes Zeichen.

Rückgabewert :
ungetc liefert bei fehlerfreier Ausführung das zurückgestellte Zeichen, ansonsten EOF zurück.



unlink

Prototyp : int unlink(const char *filename);
Header : <io.h>

Beschreibung :
unlink löscht die durch filename angegebene Datei. Als filename kann jeder Laufwerksbezeichner, jeder Pfad und Dateiname verwendet werden. Die Jokerzeichen * und ? sind in filename nicht erlaubt. Schreibgeschützte Dateien können mit unlink nicht gelöscht werden. Eine geöffnete Datei muß vor dem Löschen geschlossen werden.

Rückgabewert :
Bei fehlerfreier Ausführung liefert unlink den Wert 0 zurück. Im Fehlerfall ist das Funktionsergebnis -1 und errno erhält einen der folgenden Werte:

EACCES Zugriff nicht gestattet
ENOENT Pfad/Datei nicht gefunden



va_arg, va_end, va_start

Prototypen : void va_start(va_list ap, lastfix); type va_arg(va_list ap, type); void va_end(va_list ap);
Header : <stdarg.h>

Beschreibung :
Verschiedene C-Funktionen (wie vfprintf und vprintf) erwarten einen oder mehrere obligatorische Parameter, können aber auch variable Argumentlisten verarbeiten. Die Makros va_arg, va_end und va_start stellen eine portable Schnittstelle dar, um auf diese Argumentlisten zuzugreifen. Sie werden benutzt, um sich entlang einer Liste von Argumenten zu bewegen, wenn die aufgerufene Funktion die Anzahl und die Typen der übergebenen Parameter nicht kennt.

In der Header-Datei stdarg.h sind ein Typ (va_list) und drei Makros (va_start, va_arg und va_end) deklariert:

Für den Parameter type dürfen die Werte char, unsigned char oder float nicht verwendet werden.

Der erste Aufruf von va_arg liefert den Wert des ersten variablen Parameters zurück und erhöht ap entsprechend, so daß ap danach auf den nächsten Parameter zeigt. Weitere Aufrufe von va_arg - wieder mit ap - liefern die jeweils nachfolgenden Parameter zurück.

Das Makro va_end hilft der aufgerufenen Funktion, einen normalen Rücksprung durchzuführen. va_end kann ap verändern, so daß vor einer erneuten Verwendung wieder va_start aufgerufen werden muß. va_end sollte aufgerufen werden, nachdem va_arg alle Argumente abgearbeitet hat; wird dies unterlassen, resultiert daraus unter Umständen ein undefiniertes Verhalten des Programms.

Rückgabewert :
va_start und va_end haben keinen Rückgabewert, va_arg liefert den aktuellen Parameter der Funktion zurück, wobei der Ergebnistyp durch type bestimmt wird.



vfprintf

Prototyp : int vfprintf(FILE *stream, const char *format, va_list arglist);
Header : <stdio.h>

Beschreibung :
Die v...printf-Funktionen entsprechen den ...printf-Funktionen. Sie verhalten sich exakt wie ihre ...printf-Gegenstücke, übernehmen jedoch anstelle einer Argumentliste einen Zeiger auf eine Liste von Argumenten als Parameter.Weitere Details über Formatieranweisungen finden Sie unter printf-Formatieranweisung. vfprintf übernimmt einen Zeiger auf eine Reihe von Argumenten, wendet auf jedes Argument eine Formatieranweisung an, die in dem durch format gegebenen Format-String enthalten ist, und schreibt die formatierten Daten in den durch stream bezeichneten Stream. Die Anzahl der Argumente und Formatieranweisungen muß identisch sein.

Rückgabewert :
Die Funktion liefert die Anzahl der ausgegebenen Bytes zurück. Im Fehlerfall liefert vfprint EOF zurück.



vfscanf

Prototyp : int vfscanf(FILE *stream,const char *format,va_list arglist);
Header : <stdio.h>

Beschreibung :
Die v...scanf-Funktionen sind eine alternative Aufrufmöglichkeit der entsprechenden ...scanf-Funktionen. Sie verhalten sich exakt wie ihre ...scanf-Gegenstücke, übernehmen jedoch anstelle einer Argumentliste einen Zeiger auf eine Liste von Argumenten als Parameter. vfscanf liest eine Reihe von Eingabefeldern zeichenweise aus dem durch stream angegebenen Stream. Auf jedes Feld wird dann die entsprechende Formatieranweisung angewendet, die vfscanf über den Zeiger format auf den Format-String übergeben wurde. Der Format-String legt die Anzahl der Eingaben und ihr Format fest. Gelesene Eingaben werden an den Adressen, die in den format nachfolgenden Parametern angegeben werden, gespeichert. Nach der Analyse der ersten Formatieranweisung wird ein Eingabefeld gelesen, konvertiert und an der entsprechenden Adresse gespeichert. Die Anzahl der Eingabefelder muß mit der Anzahl der Formatieranweisungen und Adressen übereinstimmen.

Es ist möglich, daß vfscanf das Einlesen eines bestimmten Feldes vorzeitig - d.h. bevor das Feldende (markiert durch ein Whitespace-Zeichen) erreicht ist - abbricht bzw. den Lesevorgang komplett beendet. In der Beschreibung zu scanf werden die Gründe hierfür erläutert.

Weitere Details über Formatieranweisungen finden Sie unter scanf-Formatieranweisungen.

Rückgabewert :
vfscanf liefert die Anzahl der fehlerfrei gelesenen und gespeicherten Felder zurück, wobei nur gelesene aber nicht gespeicherte Felder nicht gezählt werden. Wenn überhaupt keine Zuweisungen erfolgt sind, liefert vfscanf den Wert 0. Beim Versuch, über das Ende einer Datei hinauszulesen, liefert vfscanf Wert EOF zurück.



vprintf

Prototyp : int vprintf(const char *format, va_list arglist);
Header : <stdio.h>

Beschreibung :
Die v...printf-Funktionen entsprechen den ...printf-Funktionen. Sie verhalten sich exakt wie ihre ...printf-Gegenstücke, übernehmen jedoch anstelle einer Argumentliste einen Zeiger auf eine Liste von Argumenten als Parameter.Weitere Details über Formatieranweisungen finden Sie unter printf-Formatieranweisung. vprintf akzeptiert einen Zeiger auf ein Reihe von Argumenten, wendet auf jedes Argument eine Formatieranweisung an, die in dem durch format angegebenen Format-String enthalten ist, und schreibt die formatierten Daten nach stdout. Die Anzahl der Argumente muß mit den Formatieranweisungen im Format-String übereinstimmen.

Rückgabewert :
Die Funktion liefert die Anzahl der ausgegebenen Zeichen zurück. Bei einem Fehler liefert vprintf den Wert EOF zurück.



vscanf

Prototyp : int vscanf(const char *format, va_list arglist);
Header : <stdio.h>

Beschreibung :
Die v...scanf-Funktionen sind eine alternative Aufrufmöglichkeit der entsprechenden ...scanf-Funktionen. Sie verhalten sich exakt wie ihre ...scanf-Gegenstücke, übernehmen jedoch anstelle einer Argumentliste einen Zeiger auf eine Liste von Argumenten als Parameter. vscanf liest eine Reihe von Eingabefeldern zeichenweise aus stdin. Auf jedes Feld wird dann die entsprechende Formatieranweisung angewendet, die vscanf über den Zeiger format auf den Format-String übergeben wurde. Der Format-String legt die Anzahl der Eingaben und ihr Format fest. Gelesene Eingaben werden an den Adressen, die in den format nachfolgenden Parametern angegeben werden, gespeichert. Nach der Analyse der ersten Formatieranweisung wird ein Eingabefeld gelesen, konvertiert und an der entsprechenden Adresse gespeichert. Die Anzahl der Eingabefelder muß mit der Anzahl der Formatierangweisungen und Adressen übereinstimmen.

Es ist möglich, daß vscanf das Einlesen eines bestimmten Feldes vorzeitig - d.h. bevor das Feldende (markiert durch ein Whitespace-Zeichen) erreicht ist - abbricht bzw. den Lesevorgang komplett beendet. In der Beschreibung zu scanf werden die Gründe hierfür erläutert.

Weitere Details über Formatieranweisungen finden Sie bei der scanf-Funktion.

Rückgabewert :
vscanf liefert die Anzahl der fehlerfrei gelesenen, konvertierten und gespeicherten Felder zurück, wobei Felder, die nur gelesen aber nicht gespeichert wurden, nicht gezählt werden. Wenn überhaupt keine Zuweisungen erfolgt sind, ist der Rückgabewert 0. Beim Versuch, über das Ende der Datei hinauszulesen, liefert vscanf den Wert EOF zurück.



vsprintf

Prototyp : int vsprintf(char *buffer, const char *format, va_list arglist);
Header : <stdio.h>

Beschreibung :
Die v...printf-Funktionen sind eine alternative Aufrufmöglichkeit der entsprechenden ...printf-Funktionen. Sie verhalten sich exakt wie ihre ...printf-Gegenstücke, übernehmen jedoch anstelle einer Argumentliste einen Zeiger auf eine Liste von Argumenten als Parameter. vsprintf akzeptiert einen Zeiger auf ein Reihe von Argumenten, wendet auf jedes Argument eine Formatieranweisung an, die in dem durch format angegebenen Format-String enthalten ist, und schreibt die formatierten Daten in den durch buffer bezeichneten String. Die Anzahl der Argumente muß mit der der Formatieranweisungen übereinstimmen.

Weitere Details über Formatieranweisungen finden Sie bei der printf-Funktion.

Rückgabewert :
Die Funktion liefert die Anzahl der ausgegebenen Zeichen zurück. Bei einem Fehler liefert vsprintf EOF zurück.



vsscanf

Prototyp : int vsscanf(const char *buffer, const char *format, va_list arglist);
Header : <stdio.h>

Beschreibung :
Die v...scanf-Funktionen sind eine alternative Aufrufmöglichkeit der entsprechenden ...scanf-Funktionen. Sie verhalten sich exakt wie ihre ...scanf-Gegenstücke, übernehmen jedoch anstelle einer Argumentliste einen Zeiger auf eine Liste von Argumenten als Parameter. vsscanf liest eine Reihe von Eingabefeldern zeichenweise aus dem durch buffer bezeichneten String. Auf jedes Feld wird dann die entsprechende Formatieranweisung angewendet, der vsscanf über den Zeiger format auf den Format-String übergeben wurde. Der Format-String legt die Anzahl der Eingaben und ihr Format fest. Gelesene Eingaben werden an den Adressen, die in den format nachfolgenden Parametern angegeben werden, gespeichert. Nach der Analyse der ersten Formatieranweisung wird ein Eingabefeld gelesen, konvertiert und an der entsprechenden Adresse gespeichert. Die Anzahl der Eingabefelder muß der Anzahl der Formatierangweisungen und Adressen übereinstimmen.

Es ist möglich, daß vsscanf das Einlesen eines bestimmten Feldes vorzeitig - d.h. bevor das Feldende (markiert durch ein Whitespace-Zeichen) erreicht ist - abbricht bzw. den Lesevorgang komplett beendet. In der Beschreibung zu scanf werden die Gründe hierfür erläutert.

Weitere Details über Formatieranweisungen finden Sie bei der scanf-Funktion.

Rückgabewert :
vsscanf liefert die Anzahl der fehlerfrei gelesenen, konvertierten und gespeicherten Felder zurück, wobei Felder, die zwar gelesen aber nicht gespeichert wurden, nicht gezählt werden. Wenn überhaupt keine Zuweisungen erfolgt sind, ist der Rückgabewert 0. Beim Versuch, über das Ende des Strings hinauszulesen, wird der Wert EOF zurückgeliefert.



write

Prototyp : int write(int handle, void *buf, unsigned len);
Header : <io.h>

Beschreibung :
write liest len Bytes ab der durch buf angegebenen Adresse aus dem Speicher und schreibt sie in die durch handle bezeichnete Datei. handle ist ein Datei-Handle, das man durch einen Aufruf von creat, creatnew, open, dup oder dup2 erhält. Mit Ausnahme von Textdateien entspricht die Anzahl der in die Datei geschriebenen Bytes dem durch den Parameter len angegebenen Wert. Wenn die Datei im Textmodus geöffnet wurde und write auf das Zeilenvorschubzeichen LF ('\n') trifft, so wird die Zeichenfolge CR/LF ausgegeben

Ist die Anzahl der tatsächlich geschriebenen Bytes kleiner als len, so ist dies ein Fehler und bedeutet wahrscheinlich, daß die Diskette oder Festplatte voll ist. Bei Diskettendateien schreibt write ab der aktuellen Position des Dateizeigers, bei Gerätedateien wird direkt zum jeweiligen Gerät geschrieben. Wenn die Datei mit O_APPEND (anhängen) geöffnet wurde, setzt write den Dateizeiger automatisch auf das Dateiende.

Rückgabewert :
Die Funktion liefert die Anzahl der tatsächlich geschriebenen Bytes zurück (wobei write die aus Zeilenvorschüben erzeugten CR/LF-Kombinationen als ein Byte zählt). Im Fehlerfall wird der Wert -1 zurückgeliefert und errno erhält einen der folgenden Werte:

EACCES Zugriff nicht gestattet
EBADF  Ungültiges Handle
ENOSPC Nicht genüg Speicherplatz auf Datenträger


 <Vorherige Seite> | <Zurück zur Übersicht>