/* This file is part of the sample code and exercises * used by the class "Advanced Programming in the UNIX * Environment" taught by Jan Schaumann * at Stevens Institute of * Technology. * * This file is in the public domain. * * You don't have to, but if you feel like * acknowledging where you got this code, you may * reference me by name, email address, or point * people to the course website: * https://stevens.netmeister.org/631/ */ /* * Stripped down version of 'cat', buffered version. * Guess what, this is also a primitive version of 'cp': * ./simple-cat simple-cat.copy */ #include #include #include #include #include int main(int argc, char **argv) { int c; /* cast to void to silence compiler warnings */ (void)argc; (void)argv; while ((c = getc(stdin)) != EOF) { if (putc(c, stdout) == EOF) { fprintf(stderr, "Unable to write: %s\n", strerror(errno)); exit(EXIT_FAILURE); } } if (ferror(stdin)) { fprintf(stderr, "Unable to read: %s\n", strerror(errno)); exit(EXIT_FAILURE); } return(EXIT_SUCCESS); }