#include #include #include #include #include #include // Define our functions.. int isLetterOrDigit(char); int getNextWord(int); int main(int, char **); int main(int argc, char **argv) { int fd; if (argc < 2) { fprintf(stderr, "usage: %s \n", argv[0]); exit(1); } if ((fd = open(argv[1], O_RDONLY)) < 1) { fprintf(stderr, "Cannot open input file %s: %s\n", argv[1], strerror(errno)); exit(1); } while (getNextWord(fd)); } int isLetterOrDigit(char c) { return(isdigit(c)); } int getNextWord(int fd) { char c = 0; int i = 0; char wordbuf[4096]; while (read(fd, &c, 1) == 1) { if (i >= 4096) { fprintf(stderr, "Word buffer overflow\n"); exit(1); } isLetterOrDigit(c); if (isalnum(c)) wordbuf[i++] = c; else break; } if (i) { wordbuf[i] = 0; printf("%d: %s\n", i, wordbuf); } return(i); }