#include #include // read, isatty // STDIN_FILENO int process_fn(int fn) { char c[1]; while (read(fn, c, sizeof(c)) > 0) { printf("%c", c[0]); } return 0; } int main(int argc, char** argv) { if (!isatty(STDIN_FILENO)) { return process_fn(STDIN_FILENO); } else if(argc > 1){ FILE* fp = fopen(argv[1], "r"); if(!fp){ perror("Could not open file"); return 1; } return process_fn(fileno(fp)); } else{ printf("To do"); } return 0; }