#include #include #include void die_read(char *fn) { fprintf(stderr,"bytestodecimal: fatal: unable to read %s: %s\n" ,fn,strerror(errno)); exit(111); } void die_write(void) { fprintf(stderr,"bytestodecimal: fatal: unable to write output: %s\n" ,strerror(errno)); exit(111); } int main(int argc,char **argv) { FILE *f; int bytes = 0; int c; if (!argv[1]) { fprintf(stderr,"usage: bytestodecimal f\n"); exit(100); } f = fopen(argv[1],"r"); if (!f) die_read(argv[1]); while ((c = fgetc(f)) != -1) { if (printf("%4d",c) == -1) die_write(); if (++bytes == 10) { if (printf("\n") == -1) die_write(); bytes = 0; } } if (ferror(f)) die_read(argv[1]); if (bytes) if (printf("\n") == -1) die_write(); if (fflush(stdout) == -1) die_write(); exit(0); }