carenza è spesso indice di qualcosa che non va nel sistema, è pertanto
opportuno segnalare esplicitamente questo tipo di errori.
\end{itemize}
-\item \errcode{EWOULDBLOCK} \textit{Operation would block}. In Linux è identico
- a \errcode{EAGAIN}.
+\item \errcode{EWOULDBLOCK} \textit{Operation would block}. Indica che
+ l'operazione richiesta si bloccherebbe, ad esempio se si apre un file in
+ modalità non bloccante, una \func{read} restituirebbe questo errore per
+ indicare che non ci sono dati; in Linux è identico a \errcode{EAGAIN}, ma in
+ altri sistemi può essere specificato un valore diverso.
\item \errcode{EINPROGRESS} \textit{Operation now in progress}. Operazione in
corso. Un'operazione che non può essere completata immediatamente è stata
avviata su un oggetto posto in modalità non-bloccante. Questo errore viene
non è consentito. Non viene mai generato su Linux.
\item \errcode{EIDRM} \textit{Identifier removed}. Indica che l'oggetto del
- \textit{SysV IPC} cui si fa riferimento è stato cancellato.
+ \textit{SysV IPC} a cui si fa riferimento è stato cancellato.
\item \errcode{ENODATA} \textit{No data available}. Viene indicato da Posix
come restituito da una \func{read} eseguita su un file descriptor in
modalità non bloccante quando non ci sono dati. In realtà in questo caso
- viene utilizzato \errcode{EAGAIN}. In Linux viene utilizzato quando dalle
- funzioni per la gestione degli attributi estesi dei file quando il nome
+ viene utilizzato \errcode{EAGAIN}. In Linux viene utilizzato dalle funzioni
+ per la gestione degli attributi estesi dei file quando il nome
dell'attributo richiesto non viene trovato.
% TODO referenziare la trattazione degli attributi estesi dei file
-\item \errcode{ENOLINK} \textit{Link has been severed}.
+\item \errcode{ENOLINK} \textit{Link has been severed}. È un errore il cui
+ valore è indicato come \textsl{riservato} nelle \textit{Single Unix
+ Specification}. Dovrebbe indicare l'impossibilità di accedere ad un file a
+ causa di un errore sul collegamento di rete, ma non ci sono indicazioni
+ precise del suo utilizzo. Per quanto riguarda Linux viene riportato nei
+ sorgenti del kernel in alcune operazioni relative ad operazioni di rete.
\item \errcode{ENOMSG} \textit{No message of desired type}. Indica che in una
coda di messaggi del \textit{SysV IPC} non è presente nessun messaggio del
link diretti allo stesso file non vengono influenzati.
Il comportamento della funzione è diverso a seconda che si voglia rinominare
-un file o una directory; se ci riferisce a un file allora \param{newpath}, se
+un file o una directory; se ci riferisce ad un file allora \param{newpath}, se
esiste, non deve essere una directory (altrimenti si ha l'errore
\errcode{EISDIR}). Nel caso \param{newpath} indichi un file esistente questo
viene cancellato e rimpiazzato (atomicamente).
\param{newpath} non può contenere \param{oldpath} altrimenti si avrà un errore
\errcode{EINVAL}.
-Se \param{oldpath} si riferisce a un link simbolico questo sarà rinominato; se
+Se \param{oldpath} si riferisce ad un link simbolico questo sarà rinominato; se
\param{newpath} è un link simbolico verrà cancellato come qualunque altro
file. Infine qualora \param{oldpath} e \param{newpath} siano due nomi dello
stesso file lo standard POSIX prevede che la funzione non dia errore, e non
La lettura delle informazioni relative ai file è fatta attraverso la famiglia
delle funzioni \func{stat} (\funcd{stat}, \funcd{fstat} e \funcd{lstat});
questa è la funzione che ad esempio usa il comando \cmd{ls} per poter ottenere
-e mostrare tutti i dati relativi a un file. I prototipi di queste funzioni
+e mostrare tutti i dati relativi ad un file. I prototipi di queste funzioni
sono i seguenti:
\begin{functions}
\headdecl{sys/types.h}
veda sez.~\ref{sec:file_ownership_management} per una spiegazione dettagliata
al proposito).
-Infine Linux utilizza il bit \acr{sgid} per una ulteriore estensione mutuata
+Infine Linux utilizza il bit \acr{sgid} per un'ulteriore estensione mutuata
da SVr4. Il caso in cui un file ha il bit \acr{sgid} impostato senza che lo
sia anche il corrispondente bit di esecuzione viene utilizzato per attivare
per quel file il \itindex{mandatory~locking} \textit{mandatory locking}
drwxrwxrwt 6 root root 1024 Aug 10 01:03 /tmp
\end{verbatim}%$
quindi con lo \textit{sticky bit} bit impostato. In questo modo qualunque
-utente nel sistema può c reare dei file in questa directory (che, come
+utente nel sistema può creare dei file in questa directory (che, come
suggerisce il nome, è normalmente utilizzata per la creazione di file
temporanei), ma solo l'utente che ha creato un certo file potrà cancellarlo o
rinominarlo. In questo modo si evita che un utente possa, più o meno
stato indicato in \param{mode}.
\item per quanto detto in sez.~\ref{sec:file_ownership_management} riguardo la
creazione dei nuovi file, si può avere il caso in cui il file creato da un
- processo è assegnato a un gruppo per il quale il processo non ha privilegi.
+ processo è assegnato ad un gruppo per il quale il processo non ha privilegi.
Per evitare che si possa assegnare il bit \itindex{sgid~bit} \acr{sgid} ad
- un file appartenente a un gruppo per cui non si hanno diritti, questo viene
+ un file appartenente ad un gruppo per cui non si hanno diritti, questo viene
automaticamente cancellato da \param{mode} (senza notifica di errore)
qualora il gruppo del file non corrisponda a quelli associati al processo
(la cosa non avviene quando l'user-ID effettivo del processo è zero).
Per alcuni filesystem\footnote{i filesystem più comuni (\textsl{ext2},
\textsl{ext3}, \textsl{reiserfs}) supportano questa caratteristica, che è
- mutuata da BSD.} è inoltre prevista una ulteriore misura di sicurezza, volta
+ mutuata da BSD.} è inoltre prevista un'ulteriore misura di sicurezza, volta
a scongiurare l'abuso dei \itindex{suid~bit} bit \acr{suid} e \acr{sgid}; essa
consiste nel cancellare automaticamente questi bit dai permessi di un file
qualora un processo che non appartenga all'amministratore\footnote{per la