diff options
Diffstat (limited to 'toys/other/count.c')
-rw-r--r-- | toys/other/count.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/toys/other/count.c b/toys/other/count.c new file mode 100644 index 00000000..0ec3919d --- /dev/null +++ b/toys/other/count.c @@ -0,0 +1,36 @@ +/* vi: set sw=4 ts=4: + * + * count.c - Progress indicator from stdin to stdout + * + * Copyright 2002 Rob Landley <rob@landley.net> + * + * Not in SUSv3. + +USE_COUNT(NEWTOY(count, NULL, TOYFLAG_USR|TOYFLAG_BIN)) + +config COUNT + bool "count" + default y + help + usage: count + + Copy stdin to stdout, displaying simple progress indicator to stderr. +*/ + +#include "toys.h" + +void count_main(void) +{ + uint64_t size = 0; + int len; + char buf[32]; + + for (;;) { + len = xread(0, toybuf, sizeof(toybuf)); + if (!len) break; + size += len; + xwrite(1, toybuf, len); + xwrite(2, buf, sprintf(buf, "%"PRIu64" bytes\r", size)); + } + xwrite(2, "\n", 1); +} |