43 lines
868 B
C
43 lines
868 B
C
|
/**
|
||
|
* 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;
|
||
|
}
|