#include #include #include #include #include #include #include #include int main(int argc, char *argv[]) { if(argc < 2) { fprintf(stderr,"Please specify a file.\n"); exit(1); } struct stat buf; int ret = stat(argv[1],&buf); if(ret == -1) { fprintf(stderr,"Error stating file '%s'\n",argv[1]); exit(2); } if(!S_ISREG(buf.st_mode)) { fprintf(stderr,"'%s' is not a regular file\n",argv[1]); exit(3); } int fd = open(argv[1],O_RDONLY); if(fd < 0) { fprintf(stderr,"Error opening file '%s'\n",argv[1]); exit(4); } char *map = (char *)mmap(NULL,buf.st_size+1,PROT_READ|PROT_WRITE,MAP_PRIVATE, fd,0); if(map == MAP_FAILED) { fprintf(stderr,"Error opening file '%s'\n",argv[1]); exit(5); } char *next = map; while((next = strtok(next," \t\n"))) { printf("token: <%s>\n",next); next = NULL; } }