From f8a333e3c002e05966fb3ec13029f528df7a892d Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Thu, 17 Nov 2011 07:26:22 -0600 Subject: [PATCH] Add wc. --- toys/wc.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 toys/wc.c diff --git a/toys/wc.c b/toys/wc.c new file mode 100644 index 0000000..81fde80 --- /dev/null +++ b/toys/wc.c @@ -0,0 +1,60 @@ +/* vi: set sw=4 ts=4: + * + * wc.c - Word countA hello world program. + * + * Copyright 2011Rob Landley + * + * See http://opengroup.org/onlinepubs/9699919799/utilities/wc.html + +USE_WC(NEWTOY(wc, "cwl", TOYFLAG_USR|TOYFLAG_BIN)) + +config WC + bool "wc" + default y + help + usage: wc -lwc [FILE...] + + Count lines, words, and characters in input. + + -l show lines + -w show words + -c show characters + + By default outputs lines, words, characters, and filename for each + argument (or from stdin if none). +*/ + +#include "toys.h" + +static void do_wc(int fd, char *name) +{ + int i, len; + unsigned long word=0, lengths[]={0,0,0}; + + for (;;) { + len = read(fd, toybuf, sizeof(toybuf)); + if (len<0) { + perror_msg("%s",name); + toys.exitval = EXIT_FAILURE; + } + if (len<1) break; + for (i=0; i