diff options
Diffstat (limited to 'src/user/wc.cc')
| -rw-r--r-- | src/user/wc.cc | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/src/user/wc.cc b/src/user/wc.cc deleted file mode 100644 index fbe9735..0000000 --- a/src/user/wc.cc +++ /dev/null @@ -1,60 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -/* - * Copyright (C) 2026 Richard QIn - */ -#include "ulib/stdio.h" -#include "ulib/stdlib.h" -#include "ulib/string.h" -#include "user/user.h" -#include "common/fcntl.h" - -char buf[512]; - -void wc(int fd, char *name) -{ - int i, n; - int l, w, c, inword; - - l = w = c = 0; - inword = 0; - while ((n = read(fd, buf, sizeof(buf))) > 0) - { - for (i = 0; i < n; i++) - { - c++; - if (buf[i] == '\n') - l++; - if (strchr(" \r\t\n\v", buf[i])) - inword = 0; - else if (!inword) - { - w++; - inword = 1; - } - } - } - printf("%d %d %d %s\n", l, w, c, name); -} - -int main(int argc, char *argv[]) -{ - int fd, i; - - if (argc <= 1) - { - wc(0, ""); - exit(0); - } - - for (i = 1; i < argc; i++) - { - if ((fd = open(argv[i], O_RDONLY)) < 0) - { - printf("wc: cannot open %s\n", argv[i]); - exit(1); - } - wc(fd, argv[i]); - close(fd); - } - exit(0); -}
\ No newline at end of file |
