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.
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.
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.
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.
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.. |
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
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.
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.
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.
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.
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.
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.
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.
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
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
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
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.
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.
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
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.
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.
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.
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.
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
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.
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
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.
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.
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.
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.
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:
+ 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.
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.
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:
Erstes Zeichen | Zweites Zeichen | Interpretation |
0 | 1 bis 7 | Oktalsystem |
0 | x oder X | Hexadezimalsystem |
1 bis 9 | Dezimalsystem |
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.
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.
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.
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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
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:
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.
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.
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.
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.
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.
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.
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.
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