già.
\item \macro{EMLINK} ci sono troppi link al file \var{oldpath} (il
numero massimo è specificato dalla variabile \macro{LINK\_MAX}, vedi
- \secref{sec:xxx_limits}).
+ \secref{sec:sys_limits}).
\end{errlist}
ed inoltre \macro{EACCES}, \macro{ENAMETOOLONG}, \macro{ENOTDIR},
\macro{EFAULT}, \macro{ENOMEM}, \macro{EROFS}, \macro{ELOOP},
fatta per compatibilità all'indietro con BSD, che non consente di specificare
la dimensione del buffer; esso deve essere allocato in precedenza ed avere una
dimensione superiore a \macro{PATH\_MAX} (di solito 256 byte, vedi
-\secref{sec:xxx_limits}); il problema è che in Linux non esiste una dimensione
+\secref{sec:sys_limits}); il problema è che in Linux non esiste una dimensione
superiore per un pathname, per cui non è detto che il buffer sia sufficiente a
contenere il nome del file, e questa è la ragione principale per cui questa
funzione è deprecata.
Per cambiare i permessi di un file il sistema mette ad disposizione due
funzioni, che operano rispettivamente su un filename e su un file descriptor,
i loro prototipi sono:
-
\begin{functions}
\headdecl{sys/types.h}
\headdecl{sys/stat.h}
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}, il cui prototipo è:
-
\begin{prototype}{stat.h}
{mode\_t umask(mode\_t mask)}
Come per i permessi, il sistema fornisce anche delle funzioni che permettano
di cambiare utente e gruppo cui il file appartiene; le funzioni in questione
sono tre e i loro prototipi sono i seguenti:
-
\begin{functions}
\headdecl{sys/types.h}
\headdecl{sys/stat.h}