numero massimo è specificato dalla variabile \const{LINK\_MAX}, vedi
\secref{sec:sys_limits}).
\end{errlist}
- ed inoltre \const{EACCES}, \const{ENAMETOOLONG}, \const{ENOTDIR},
- \const{EFAULT}, \const{ENOMEM}, \const{EROFS}, \const{ELOOP},
- \const{ENOSPC}, \const{EIO}.}
+ ed inoltre \errval{EACCES}, \errval{ENAMETOOLONG}, \errval{ENOTDIR},
+ \errval{EFAULT}, \errval{ENOMEM}, \errval{EROFS}, \errval{ELOOP},
+ \errval{ENOSPC}, \errval{EIO}.}
\end{prototype}
La creazione di un nuovo collegamento diretto non copia il contenuto del file,
lettura.
\item[\errcode{EISDIR}] \var{pathname} fa riferimento a una directory.
\end{errlist}
- ed inoltre: \const{EACCES}, \const{EFAULT}, \const{ENOENT}, \const{ENOTDIR},
- \const{ENOMEM}, \const{EROFS}, \const{ELOOP}, \const{EIO}.}
+ ed inoltre: \errval{EACCES}, \errval{EFAULT}, \errval{ENOENT},
+ \errval{ENOTDIR}, \errval{ENOMEM}, \errval{EROFS}, \errval{ELOOP},
+ \errval{EIO}.}
\end{prototype}
Per cancellare una voce in una directory è necessario avere il permesso di
o \var{oldpath} è una directory e \var{newpath} esiste e non è una
directory.
\end{errlist}
- ed inoltre \const{EACCESS}, \const{EPERM}, \const{EMLINK}, \const{ENOENT},
- \const{ENOMEM}, \const{EROFS}, \const{ELOOP} e \const{ENOSPC}.}
+ ed inoltre \errval{EACCESS}, \errval{EPERM}, \errval{EMLINK},
+ \errval{ENOENT}, \errval{ENOMEM}, \errval{EROFS}, \errval{ELOOP} e
+ \errval{ENOSPC}.}
\end{prototype}
Il comportamento della funzione è diverso a seconda che si voglia rinominare
\item[\errcode{EROFS}] \param{newpath} è su un filesystem montato in sola
lettura.
\end{errlist}
- ed inoltre \const{EFAULT}, \const{EACCES}, \const{ENAMETOOLONG},
- \const{ENOTDIR}, \const{ENOMEM}, \const{ELOOP}, \const{ENOSPC} e
- \const{EIO}.}
+ ed inoltre \errval{EFAULT}, \errval{EACCES}, \errval{ENAMETOOLONG},
+ \errval{ENOTDIR}, \errval{ENOMEM}, \errval{ELOOP}, \errval{ENOSPC} e
+ \errval{EIO}.}
\end{prototype}
Si tenga presente che la funzione non effettua nessun controllo sull'esistenza
\item[\errcode{EINVAL}] \param{path} non è un link simbolico o \param{size}
non è positiva.
\end{errlist}
- ed inoltre \const{ENOTDIR}, \const{ENAMETOOLONG}, \const{ENOENT},
- \const{EACCES}, \const{ELOOP}, \const{EIO}, \const{EFAULT} e
- \const{ENOMEM}.}
+ ed inoltre \errval{ENOTDIR}, \errval{ENAMETOOLONG}, \errval{ENOENT},
+ \errval{EACCES}, \errval{ELOOP}, \errval{EIO}, \errval{EFAULT} e
+ \errval{ENOMEM}.}
\end{prototype}
La funzione apre il link simbolico, ne legge il contenuto, lo scrive nel
\item[\errcode{ENOSPC}] Non c'è abbastanza spazio sul file system per creare
la nuova directory o si è esaurita la quota disco dell'utente.
\end{errlist}
- ed inoltre anche \const{EPERM}, \const{EFAULT}, \const{ENAMETOOLONG},
- \const{ENOENT}, \const{ENOTDIR}, \const{ENOMEM}, \const{ELOOP},
- \const{EROFS}.}
+ ed inoltre anche \errval{EPERM}, \errval{EFAULT}, \errval{ENAMETOOLONG},
+ \errval{ENOENT}, \errval{ENOTDIR}, \errval{ENOMEM}, \errval{ELOOP},
+ \errval{EROFS}.}
\end{prototype}
La funzione crea una nuova directory vuota (che contiene solo le due voci
radice di qualche processo.
\item[\errcode{ENOTEMPTY}] La directory non è vuota.
\end{errlist}
- ed inoltre anche \const{EFAULT}, \const{ENAMETOOLONG}, \const{ENOENT},
- \const{ENOTDIR}, \const{ENOMEM}, \const{ELOOP}, \const{EROFS}.}
+ ed inoltre anche \errval{EFAULT}, \errval{ENAMETOOLONG}, \errval{ENOENT},
+ \errval{ENOTDIR}, \errval{ENOMEM}, \errval{ELOOP}, \errval{EROFS}.}
\end{prototype}
La modalità con cui avviene la cancellazione è analoga a quella di
o un dipositivo.
\item[\errcode{EEXIST}] \param{pathname} esiste già o è un link simbolico.
\end{errlist}
- ed inoltre anche \const{EFAULT}, \const{EACCESS}, \const{ENAMETOOLONG},
- \const{ENOENT}, \const{ENOTDIR}, \const{ENOMEM}, \const{ELOOP},
- \const{ENOSPC}, \const{EROFS}.}
+ ed inoltre anche \errval{EFAULT}, \errval{EACCESS}, \errval{ENAMETOOLONG},
+ \errval{ENOENT}, \errval{ENOTDIR}, \errval{ENOMEM}, \errval{ELOOP},
+ \errval{ENOSPC}, \errval{EROFS}.}
\end{functions}
La funzione permette di creare un file speciale, ma si può usare anche per
\funcdecl{int mkfifo(const char *pathname, mode\_t mode)} Crea una fifo.
\bodydesc{La funzione restituisce zero in caso di successo e -1 per un
- errore, nel qual caso \var{errno} assumerà i valori \const{EACCESS},
- \const{EEXIST}, \const{ENAMETOOLONG}, \const{ENOENT}, \const{ENOSPC},
- \const{ENOTDIR} e \const{EROFS}.}
+ errore, nel qual caso \var{errno} assumerà i valori \errval{EACCESS},
+ \errval{EEXIST}, \errval{ENAMETOOLONG}, \errval{ENOENT}, \errval{ENOSPC},
+ \errval{ENOTDIR} e \errval{EROFS}.}
\end{functions}
\noindent come per \func{mknod} il file \param{pathname} non deve esistere
(neanche come link simbolico); al solito i permessi specificati da
\item[\errcode{EACCESS}] Manca il permesso di ricerca su uno dei componenti
di \param{path}.
\end{errlist}
- ed inoltre \const{EFAULT}, \const{ENAMETOOLONG}, \const{ENOENT},
- \const{ENOMEM}, \const{ELOOP} e \const{EIO}.}
+ ed inoltre \errval{EFAULT}, \errval{ENAMETOOLONG}, \errval{ENOENT},
+ \errval{ENOMEM}, \errval{ELOOP} e \errval{EIO}.}
\end{prototype}
\noindent ed ovviamente \param{pathname} deve indicare una directory per la
quale si hanno i permessi di accesso.
pathname.
\bodydesc{La funzione restituisce zero in caso di successo e -1 per un
- errore, in caso di errore \var{errno} assumerà i valori \const{EBADF} o
- \const{EACCES}.}
+ errore, in caso di errore \var{errno} assumerà i valori \errval{EBADF} o
+ \errval{EACCES}.}
\end{prototype}
\noindent anche in questo caso \param{fd} deve essere un file descriptor
valido che fa riferimento ad una directory. Inoltre l'unico errore di accesso
-possibile (tutti gli altri sarebbero occorsi all'apertura di \func{fd}), è
+possibile (tutti gli altri sarebbero occorsi all'apertura di \param{fd}), è
quello in cui il processo non ha il permesso di accesso alla directory
specificata da \param{fd}.
\bodydesc{La funzione ritorna il puntatore alla stringa con il nome o
\val{NULL} in caso di fallimento, \var{errno} viene impostata a
- \const{ENOMEM} qualora fallisca l'allocazione della stringa.}
+ \errval{ENOMEM} qualora fallisca l'allocazione della stringa.}
\end{prototype}
La funzione alloca con \code{malloc} la stringa in cui restituisce il nome,
\item[\errcode{EINTR}] La funzione è stata interrotta da un segnale.
\item[\errcode{EEXIST}] Non è stato possibile generare un nome univoco.
\end{errlist}
- ed inoltre \const{EFAULT}, \const{EMFILE}, \const{ENFILE}, \const{ENOSPC},
- \const{EROFS} e \const{EACCESS}.}
+ ed inoltre \errval{EFAULT}, \errval{EMFILE}, \errval{ENFILE},
+ \errval{ENOSPC}, \errval{EROFS} e \errval{EACCESS}.}
\end{prototype}
\noindent essa restituisce direttamente uno stream già aperto (in modalità
\code{r+b}, si veda \secref{sec:file_fopen}) e pronto per l'uso, che viene
descriptor \var{filedes}.
\bodydesc{Le funzioni restituiscono 0 in caso di successo e -1 per un
- errore, nel qual caso \var{errno} assumerà uno dei valori: \const{EBADF},
- \const{ENOENT}, \const{ENOTDIR}, \const{ELOOP}, \const{EFAULT},
- \const{EACCESS}, \const{ENOMEM}, \const{ENAMETOOLONG}.}
+ errore, nel qual caso \var{errno} assumerà uno dei valori: \errval{EBADF},
+ \errval{ENOENT}, \errval{ENOTDIR}, \errval{ELOOP}, \errval{EFAULT},
+ \errval{EACCESS}, \errval{ENOMEM}, \errval{ENAMETOOLONG}.}
\end{functions}
\noindent il loro comportamento è identico, solo che operano rispettivamente
su un file, su un link simbolico e su un file descriptor.
permesso di esecuzione una delle directory del pathname.
\item[\errcode{ETXTBSY}] Il file è un programma in esecuzione.
\end{errlist}
- ed anche \const{ENOTDIR}, \const{ENAMETOOLONG}, \const{ENOENT},
- \const{EROFS}, \const{EIO}, \const{EFAULT}, \const{ELOOP}.}
+ ed anche \errval{ENOTDIR}, \errval{ENAMETOOLONG}, \errval{ENOENT},
+ \errval{EROFS}, \errval{EIO}, \errval{EFAULT}, \errval{ELOOP}.}
\end{functions}
Se il file è più lungo della lunghezza specificata i dati in eccesso saranno
\item[\errcode{EROFS}] si è richiesto l'accesso in scrittura per un file su
un filesystem montato in sola lettura.
\end{errlist}
- ed inoltre \const{EFAULT}, \const{ENAMETOOLONG}, \const{ENOENT},
- \const{ENOTDIR}, \const{ELOOP}, \const{EIO}.}
+ ed inoltre \errval{EFAULT}, \errval{ENAMETOOLONG}, \errval{ENOENT},
+ \errval{ENOTDIR}, \errval{ELOOP}, \errval{EIO}.}
\end{prototype}
I valori possibili per l'argomento \param{mode} sono esprimibili come
proprietario del file o non è zero.
\item[\errcode{EROFS}] Il file è su un filesystem in sola lettura.
\end{errlist}
- ed inoltre \const{EIO}; \func{chmod} restituisce anche \const{EFAULT},
- \const{ENAMETOOLONG}, \const{ENOENT}, \const{ENOMEM}, \const{ENOTDIR},
- \const{EACCES}, \const{ELOOP}; \func{fchmod} anche \const{EBADF}.}
+ ed inoltre \errval{EIO}; \func{chmod} restituisce anche \errval{EFAULT},
+ \errval{ENAMETOOLONG}, \errval{ENOENT}, \errval{ENOMEM}, \errval{ENOTDIR},
+ \errval{EACCES}, \errval{ELOOP}; \func{fchmod} anche \errval{EBADF}.}
\end{functions}
Entrambe le funzioni utilizzano come secondo argomento \param{mode}, una
\item[\errcode{EPERM}] L'userid effettivo non corrisponde a quello del
proprietario del file o non è zero, o utente e gruppo non sono validi
\end{errlist}
- Oltre a questi entrambe restituiscono gli errori \const{EROFS} e
- \const{EIO}; \func{chown} restituisce anche \const{EFAULT},
- \const{ENAMETOOLONG}, \const{ENOENT}, \const{ENOMEM}, \const{ENOTDIR},
- \const{EACCES}, \const{ELOOP}; \func{fchown} anche \const{EBADF}.}
+ Oltre a questi entrambe restituiscono gli errori \errval{EROFS} e
+ \errval{EIO}; \func{chown} restituisce anche \errval{EFAULT},
+ \errval{ENAMETOOLONG}, \errval{ENOENT}, \errval{ENOMEM}, \errval{ENOTDIR},
+ \errval{EACCES}, \errval{ELOOP}; \func{fchown} anche \errval{EBADF}.}
\end{functions}
In Linux soltanto l'amministratore può cambiare il proprietario di un file,
\begin{errlist}
\item[\errcode{EPERM}] L'userid effettivo del processo non è zero.
\end{errlist}
- ed inoltre \const{EFAULT}, \const{ENAMETOOLONG}, \const{ENOENT},
- \const{ENOMEM}, \const{ENOTDIR}, \const{EACCES}, \const{ELOOP};
- \const{EROFS} e \const{EIO}.}
+ ed inoltre \errval{EFAULT}, \errval{ENAMETOOLONG}, \errval{ENOENT},
+ \errval{ENOMEM}, \errval{ENOTDIR}, \errval{EACCES}, \errval{ELOOP};
+ \errval{EROFS} e \errval{EIO}.}
\end{prototype}
\noindent in questo modo la directory radice del processo diventerà
\param{path} (che ovviamente deve esistere) ed ogni pathname assoluto sarà