Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />
<strong>in</strong>t remove(const char *filename) remove löscht <strong>die</strong> angegebene Datei, so dass e<strong>in</strong> anschliessender Versuch,<br />
sie zu öffnen, fehlschlagen wird. Die Funktion liefert bei Fehlern e<strong>in</strong>en von<br />
Null verschiedenen Wert.<br />
<strong>in</strong>t rename(const char *oldname, const char *newname)<br />
rename ändert den Namen e<strong>in</strong>er Datei <strong>und</strong> liefert nicht Null, wenn der Versuch<br />
fehlschlägt.<br />
FILE *tmpfile(void)<br />
tmpfile erzeugt e<strong>in</strong>e temporäre Datei mit Zugriff "wb+", <strong>die</strong> automatisch<br />
gelöscht wird, wenn der Zugriff abgeschlossen wird, oder wenn das Programm<br />
normal zu Ende geht. tmpfile liefert e<strong>in</strong>en Datenstrom, oder NULL,<br />
wenn <strong>die</strong> Datei nicht erzeugt werden konnte.<br />
char *tmpnam(char s[L_tmpnam]) tmpnam(NULL) erzeugt e<strong>in</strong>e Zeichenkette, <strong>die</strong> nicht der Name e<strong>in</strong>er existierenden<br />
Datei ist, <strong>und</strong> liefert e<strong>in</strong>en Zeiger auf e<strong>in</strong>en <strong>in</strong>ternen Vektor im<br />
statischen Speicherbereich. tmpnam(s) speichert <strong>die</strong> Zeichenkette <strong>in</strong> s <strong>und</strong><br />
liefert auch s als Resultat; <strong>in</strong> s müssen wenigstens L_tmpnam Zeichen abgelegt<br />
werden können. tmpnam erzeugt bei jedem Aufruf e<strong>in</strong>en anderen<br />
Namen; man kann höchstens von TMP_MAX verschiedenen Namen während<br />
der Ausführung des Programms ausgehen. Zu beachten ist, dass<br />
tmpnam e<strong>in</strong>en Namen <strong>und</strong> ke<strong>in</strong>e Datei erzeugt.<br />
<strong>in</strong>t setvbuf(FILE *stream, char *buf, <strong>in</strong>t mode, size_t size)<br />
setvbuf kontrolliert <strong>die</strong> Pufferung bei e<strong>in</strong>em Datenstrom; <strong>die</strong> Funktion muss<br />
aufgerufen werden, bevor gelesen oder geschrieben wird, <strong>und</strong> vor allen anderen<br />
Operationen. Hat mode den Wert _IOFBF, so wird vollständig gepuffert,<br />
_IOLBF sorgt für zeilenweise Pufferung bei Textdateien <strong>und</strong><br />
_IONBF verh<strong>in</strong>dert Puffern. Wenn buf nicht NULL ist, wird buf als Puffer<br />
verwendet; andernfalls wird e<strong>in</strong> Puffer angelegt. size legt <strong>die</strong> Puffergrösse<br />
fest. Bei e<strong>in</strong>em Fehler liefert setvbuf nicht Null. (Der E<strong>in</strong>satz von Puffern<br />
kann Dateizugriffe zum Teil massiv beschleunigen).<br />
void setbuf(FILE *stream, char *buf) Wenn buf den Wert NULL hat, wird der Datenstrom nicht gepuffert. Andernfalls<br />
ist setbuf äquivalent zu (void) setvbuf(stream, buf, _IOFBF,<br />
BUFSIZ).<br />
19.5.2 Formatierte Ausgabe<br />
Die pr<strong>in</strong>tf-Funktionen ermöglichen Ausgaben unter Formatkontrolle.<br />
<strong>in</strong>t fpr<strong>in</strong>tf(FILE *stream, const char *format, ...)<br />
fpr<strong>in</strong>tf wandelt Ausgaben um <strong>und</strong> schreibt sie <strong>in</strong> stream unter Kontrolle<br />
von format. Der Resultatwert ist <strong>die</strong> Anzahl der geschriebenen Zeichen; er<br />
ist negativ, wenn e<strong>in</strong> Fehler passiert ist.<br />
<strong>in</strong>t pr<strong>in</strong>tf(const char *format, ...) pr<strong>in</strong>tf(...) ist äquivalent zu fpr<strong>in</strong>tf(stdout,...).<br />
<strong>in</strong>t spr<strong>in</strong>tf(char *s, const char *format, ...)<br />
spr<strong>in</strong>tf funktioniert wie pr<strong>in</strong>tf, nur wird <strong>die</strong> Ausgabe <strong>in</strong> das Zeichenarray s<br />
geschrieben <strong>und</strong> mit '\0' abgeschlossen. s muss gross genug für das Resultat<br />
se<strong>in</strong>. Im Resultatwert wird '\0' nicht mitgezählt.<br />
vpr<strong>in</strong>tf(const char *format, va_list arg)<br />
vfpr<strong>in</strong>tf(FILE *stream, const char *format, va_list arg)<br />
vspr<strong>in</strong>tf(char *s, const char *format, va_list arg)<br />
Die Funktionen vpr<strong>in</strong>tf, vfpr<strong>in</strong>tf <strong>und</strong> vspr<strong>in</strong>tf s<strong>in</strong>d äquivalent zu den entsprechenden<br />
pr<strong>in</strong>tf-Funktionen, jedoch wird <strong>die</strong> variable Argumentenliste<br />
durch arg ersetzt. Dieser Wert wird mit dem Makro va_start <strong>und</strong> vielleicht<br />
mit Aufrufen von va_arg <strong>in</strong>itialisiert.<br />
Die Format-Zeichenkette enthält zwei Arten von Objekten: gewöhnliche Zeichen, <strong>die</strong> <strong>in</strong> <strong>die</strong> Ausgabe kopiert werden,<br />
<strong>und</strong> Umwandlungsangaben, <strong>die</strong> jeweils <strong>die</strong> Umwandlung <strong>und</strong> Ausgabe des nächstfolgenden Arguments von fpr<strong>in</strong>tf<br />
veranlassen. Jede Umwandlungsangabe beg<strong>in</strong>nt mit dem Zeichen % <strong>und</strong> endet mit e<strong>in</strong>em Umwandlungszeichen. Zwischen<br />
% <strong>und</strong> dem Umwandlungszeichen kann der Reihenfolge nach folgendes angegeben werden:<br />
Gedruckt am 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 75/147