Corretti i commenti ai listati in una forma piu' leggibile (spero).
[gapil.git] / listati / ComputeValues.c
1 /* Routine  to compute directory properties inside DirScan */
2 int ComputeValues(struct dirent * direntry) 
3 {
4     struct stat data;
5     stat(direntry->d_name, &data);      /* get stat data */
6     shmptr->tot_size += data.st_size;
7     shmptr->tot_files++;
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++;
15     return 0;
16 }
17 /* Signal Handler to manage termination */
18 void HandSIGTERM(int signo) {
19     MutexLock(mutex);
20     ShmRemove(key, shmptr);
21     MutexRemove(mutex);
22     exit(0);
23 }