|
|
1.1 ! root 1: /* ! 2: ! 3: filecat ! 4: ! 5: does nothing more than copy standard input to standard ! 6: output, like the cat command, but reports write errors. ! 7: Takes no arguments. ! 8: Uses getc and putc rather than fwrite and fread because ! 9: the latter call getc and putc. ! 10: ! 11: Exit codes: ! 12: 0 ok ! 13: 1 error on read ! 14: 2 error on write ! 15: ! 16: */ ! 17: # include <stdio.h> ! 18: main(){ ! 19: char c,sOutbuf[BUFSIZ]; ! 20: ! 21: setbuf(stdout,sOutbuf); ! 22: ! 23: while((c = getc(stdin)) != EOF){ ! 24: putc(c,stdout); ! 25: if(ferror(stdout)){ ! 26: perror("filecat: stdout"); ! 27: exit(2); ! 28: } ! 29: } ! 30: if(ferror(stdin)){ ! 31: perror("filecat: stdin"); ! 32: exit(1); ! 33: } ! 34: fclose(stdin); ! 35: fclose(stdout); ! 36: exit(0); ! 37: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.