#include #include #define BUFSIZE 100000 int main(int argc, char **argv) { FILE *point; char line[BUFSIZE]; if(argc>1) { // wenn cat mit einem argument aufgerufen wird... point = fopen(argv[1], "r"); // öffne argv[1] und speicher den stream in point } if(argc==1) { // ohne argument sollte es input über stdin geben point = stdin; } if(point == NULL) { /* falls es a) die datei nicht gab * b) wir keine leserechte haben oder * c) nichts gepipt wird */ fprintf(stderr, "Input missing.\n"); return 0; } else { while(fgets(line,BUFSIZE,point)) { // solange noch gelesen wird... lies point zeilenweise aus und speicher das ausgelesene in line printf("%s", line); // gib den puffer line aus } fclose(point); // der stream wird geschlossen return 1; } }