/* Fichier nb_lignes.c : le processus teste le 1er argument : s'il s'agit d'un fichier, il compte ses lignes, s'il s'agit d'un fichier special, il affiche son type et s'il s'agit d'un repertoire, il traite chacune de ses entrees. */ #include #include #include #include #include #include struct stat inode; int fd; int Nb_Lignes; int Nb_oct; int i; char buf[128]; char *ptr; wc(char *nom) { if (stat(nom, &inode)<0) { perror("Stat"); exit(-1); } if (S_ISREG(inode.st_mode)) { if ((fd=open(nom,O_RDONLY))<0) { perror("Open"); exit(-1); } Nb_Lignes=0; while ((Nb_oct=read(fd,buf,128))>0){ ptr=buf; for (i=0;id_name); } if (closedir(dd) <0) { perror("Closedir"); exit(-1); } } else { wc(argv[1]); } }