Lesen und Schreiben einzelner Zeichen:
Die folgenden Funktionen dienen zum Lesen und Schreiben einzelner Zeichen (Bytes):
int fputc(int ch, FILE *fp);
Konvertiert ch in ein unsigned char und schreibt dieses Zeichen in den Stream fp.
int fgetc(FILE *fp);
Liest das nächste Byte aus dem Stream und liefert es als Wert vom Typ unsigned char,
bei Streamende oder einem Lesefehler wird EOF (-1) geliefert.
Das folgende Beispiel demonstriert ein einfaches Dateikopierprogramm:
001 #include<stdio.h>
002
003 int main(int argc, char *argv[]) {
004 FILE *in = NULL, *out = NULL;
005 int ch;
006
007 if(argc != 3) {
008 fprintf(stderr, "Falscher Aufruf\n");
009 fprintf(stderr, "richtig: mycopy <QUELL> <ZIEL>\n");
010 return 1;
011 }
012
013 if(!(in = fopen(argv[1], "rb"))) {
014 fprintf(stderr, "Kann Quelle %s nicht öffnen.\n", argv[1]);
015 return 2;
016 }
017
018 if(!(out = fopen(argv[2], "wb"))) {
019 fprintf(stderr, "Kann Ziel %s nicht öffnen.\n", argv[2]);
020 return 3;
021 }
022
023 while((ch = fgetc(in)) != EOF)
024 fputc(ch, out);
025
026 fclose(in);
027 fclose(out);
028 return 0;
029 }