+I valori possibili per \var{mode} sono indicati in \ntab. I valori possono
+esser combinati con l'OR binario delle relative macro, o specificati
+direttamente, come per l'analogo comando di shell, con il valore ottale. Ad
+esempio i permessi standard assegnati ai nuovi file (lettura e scrittura per
+il proprietario, sola lettura per il gruppo e gli altri) sono corrispondenti
+al valore ottale $0644$, un programma invece avrebbe anche il bit di
+esecuzione attivo, con un valore di $0755$, se si volesse attivare il bit suid
+il valore da fornire sarebbe $4755$.
+
+\begin{table}[!htb]
+ \centering
+ \begin{tabular}[c]{|c|c|l|}
+ \hline
+ \var{mode} & Valore & Significato \\
+
+ \hline
+ \hline
+ \macro{S\_ISUID} & 04000 & set user ID \\
+
+ \macro{S\_ISGID} & 02000 & set group ID \\
+
+ \macro{S\_ISVTX} & 01000 & sticky bit \\
+
+ \hline
+ \macro{S\_IRWXU} & 00700 & l'utente ha tutti i permessi \\
+
+ \macro{S\_IRUSR} & 00400 & l'utente ha il permesso di lettura \\
+
+ \macro{S\_IWUSR} & 00200 & l'utente ha il permesso di scrittura \\
+
+ \macro{S\_IXUSR} & 00100 & l'utente ha il permesso di esecuzione \\
+
+ \hline
+ \macro{S\_IRWXG} & 00070 & il gruppo ha tutti i permessi \\
+
+ \macro{S\_IRGRP} & 00040 & il gruppo ha il permesso di lettura \\
+
+ \macro{S\_IWGRP} & 00020 & il gruppo ha il permesso di scrittura \\
+
+ \macro{S\_IXGRP} & 00010 & il gruppo ha il permesso di esecuzione \\
+
+ \hline
+ \macro{S\_IRWXO} & 00007 & gli altri hanno tutti i permessi \\
+
+ \macro{S\_IROTH} & 00004 & gli altri hanno il permesso di lettura \\
+
+ \macro{S\_IWOTH} & 00002 & gli altri hanno il permesso di scrittura \\
+
+ \macro{S\_IXOTH} & 00001 & gli altri hanno il permesso di esecuzione \\
+
+ \hline
+ \end{tabular}
+ \caption{I valori delle costanti usate per indicare i permessi dei file.}
+ \label{tab:filedir_permission_const}
+\end{table}
+
+
+
+\subsection{La funzione \texttt{umask}}
+\label{sec:filedir_umask}
+
+Oltre che dai valori indicati in sede di creazione, i permessi assegnati ai
+nuovi file sono controllati anche da una maschera di bit settata con la
+funzione \func{umask}. Questa maschera è una caratteristica di ogni processo e
+viene utilizzata per impedire che alcuni permessi possano essere assegnati ai
+nuovi file in sede di creazione, i bit indicati nella maschera vengono infatti
+esclusi quando un nuovo file viene creato.
+
+In genere questa maschera serve per impostare un default che escluda alcuni
+permessi (usualmente quello di scrittura per gruppo e altri, corrispondente ad
+un valore di 022). Essa è utile perché le routine l'interfaccia degli stream
+non prevede l'esistenza dei processi, e pertanto i nuovi file vengono sempre
+creati con i permessi fissati su 066.
+
+