06.10.2013 Aufrufe

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<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) 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 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 75/147

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!