/** * crea due nuovi file con la stessa maschera dei permessi ma con maschere di * creazione (umask) differenti * * nota: controllare i permessi effettivi applicati ai file dalla shell con: * > ./creation-mask * > ls -l test1.txt test2.txt */#include "lib-misc.h"#include <fcntl.h>#include <stdio.h>#include <stdlib.h>#include <sys/stat.h>#define RWRWRW_MASK (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)int main(int argc, char *argv[]) { // azzera la maschera di creazione: tutti i permessi sono autorizzati umask(0); if (creat("test1.txt", RWRWRW_MASK) < 0) exit_with_sys_err("test1.txt"); // inibisce la possibilità di dare permessi di lettura e scrittura al gruppo // e agli altri in fase di creazione di file e cartelle umask(S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); if (creat("test2.txt", RWRWRW_MASK) < 0) exit_with_sys_err("test2.txt"); exit(EXIT_SUCCESS);}