1 /* Routine to compute directory properties inside dir_scan */
2 int ComputeValues(struct dirent * direntry)
5 stat(direntry->d_name, &data); /* get stat data */
6 shmptr->tot_size += data.st_size;
8 if (S_ISREG(data.st_mode)) shmptr->tot_regular++;
9 if (S_ISFIFO(data.st_mode)) shmptr->tot_fifo++;
10 if (S_ISLNK(data.st_mode)) shmptr->tot_link++;
11 if (S_ISDIR(data.st_mode)) shmptr->tot_dir++;
12 if (S_ISBLK(data.st_mode)) shmptr->tot_block++;
13 if (S_ISCHR(data.st_mode)) shmptr->tot_char++;
14 if (S_ISSOCK(data.st_mode)) shmptr->tot_sock++;
17 /* Signal Handler to manage termination */
18 void HandSIGTERM(int signo) {
20 ShmRemove(key, shmptr);