c-uebungen/Assignment_024/solution/print_file.c

43 lines
868 B
C
Raw Permalink Normal View History

2023-05-21 21:10:46 +02:00
/**
* Datei auf der Konsole aufgeben.
*
* Schreiben Sie eine Funktion `print_file`, der man einen Dateinamen
* bzw. Pfad zu einer Datei übergibt und die diese Datei dann auf der
* Konsole ausgibt. Denken Sie daran, Fehler abzufangen und entsprechende
* Fehlermeldungen auszugeben.
*/
#include <stdio.h>
#include <stdlib.h>
#define BUFFER_SIZE 255
void print_file(const char* filename) {
FILE *fh = fopen(filename, "r+");
if (!fh) {
perror("Fehler: ");
exit(1);
}
char buffer[BUFFER_SIZE];
size_t num_read;
while ((num_read = fread(buffer, sizeof(char), BUFFER_SIZE, fh)) > 0) {
fwrite(buffer, sizeof(char), num_read, stdout);
}
fclose(fh);
}
int main(int argc, char** argv) {
if (argc < 2) {
puts("Dateiname fehlt!");
exit(1);
}
print_file(argv[1]);
return 0;
}