From 08b9a637106a19fdbd1e3361dcc06c9f47721218 Mon Sep 17 00:00:00 2001 From: Simon Lieb Date: Mon, 5 Aug 2013 19:33:37 +0200 Subject: [PATCH] Read/Write byte by byte using using fread/fwrite. Do not read 1024 arbitrary bytes. Slow down output to character atomicity. --- slow.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/slow.c b/slow.c index 0c9e59c..9089e49 100644 --- a/slow.c +++ b/slow.c @@ -4,17 +4,17 @@ #include int main(int argc, char *argv[]) { - char line[1024]; - int linesize = sizeof(line); - int useconds = 1000000; + char buffer; + size_t nread; + useconds_t useconds = 1000000; // default 1 second if (argc == 2) { useconds = atoi(argv[1]); } - while(fgets(line, linesize, stdin)) { + while((nread = fread(&buffer, 1, sizeof buffer, stdin)) > 0) { usleep(useconds); - fputs(line, stdout); + fwrite(&buffer, 1, nread, stdout); } return 0;