diff --git a/slow.c b/slow.c index c61c0a3..541039e 100644 --- a/slow.c +++ b/slow.c @@ -31,11 +31,18 @@ int main(int argc, char *argv[]) { while((nread = fread(&buffer, 1, sizeof buffer, stdin)) > 0) { usleep(useconds); - fwrite(&buffer, 1, nread, stdout); + if(fwrite(&buffer, 1, nread, stdout) != nread) { + fprintf(stderr, "stdout: write error"); + exit(EXIT_FAILURE); + } if(flush) { fflush(stdout); } } + if(ferror(stdin)) { + fprintf(stderr, "stdin: read error"); + exit(EXIT_FAILURE); + } return EXIT_SUCCESS; } diff --git a/todo.txt b/todo.txt index 07d55a3..93851e3 100644 --- a/todo.txt +++ b/todo.txt @@ -1,4 +1,4 @@ - [x] Add forced flush option. -f ? -F ? - [ ] Write man page -- [ ] Send errors to sderr +- [x] Send errors to sderr - [ ] Release v1