#include #include #include #include #include const size_t BUF_SIZE = 1024; int main(int argc, char* argv[]) { if (argc < 2) return 1; int fd_in = open(argv[1], O_RDONLY); if (fd_in < 0) return 2; char buf[BUF_SIZE]; int actual = read(fd_in, buf, BUF_SIZE); int lines = 0, words = 0, bytes = 0; while (actual > 0) { bytes += actual; for (int i = 0; i < actual; i++) { if (buf[i] == '\n') { lines++; if (i == 0 || buf[i-1] == '\n') words--; } else if (buf[i] == ' ') { words++; while (buf[i] == ' ') i++; } } actual = read(fd_in, buf, BUF_SIZE); } words += lines; printf("%d %d %d\n", lines, words, bytes); return 0; }