X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filedir.tex;h=2e930041c1b480c0489a273674fb4e392409e875;hp=650eb532daabd127cdadabcc3ec938c6c958cd2c;hb=e2a1ad24365266ea8846b688addd4e7694428969;hpb=d88ea986fbf6b84a802fd8a5665af4324a6c89b3 diff --git a/filedir.tex b/filedir.tex index 650eb53..2e93004 100644 --- a/filedir.tex +++ b/filedir.tex @@ -83,9 +83,9 @@ principali, come risultano dalla pagina di manuale, sono le seguenti: 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, @@ -140,8 +140,9 @@ suo prototipo 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 @@ -226,8 +227,9 @@ nello stesso filesystem) si usa invece la funzione \func{rename},\footnote{la 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 @@ -303,9 +305,9 @@ specificato. La funzione che permette di creare un nuovo link simbolico \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 @@ -378,9 +380,9 @@ la funzione \func{readlink}, il cui prototipo \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 @@ -468,9 +470,9 @@ accedere ai tipi usati da queste funzioni si deve includere il file \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 @@ -503,8 +505,8 @@ suo prototipo 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 @@ -546,9 +548,9 @@ di queste funzioni 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 @@ -586,9 +588,9 @@ Per creare una fifo (un file speciale, su cui torneremo in dettaglio in \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 @@ -695,8 +697,8 @@ appunto per \textit{change directory}, il suo prototipo \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. @@ -709,12 +711,12 @@ usa \func{fchdir}, il cui prototipo 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}. @@ -759,7 +761,7 @@ esplicitamente, il suo prototipo \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, @@ -798,8 +800,8 @@ POSIX definisce la funzione \func{tempfile}, il cui prototipo \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 @@ -923,9 +925,9 @@ queste funzioni sono i seguenti: 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. @@ -1128,8 +1130,8 @@ dimensione si possono usare le due funzioni \func{truncate} e 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 @@ -1727,8 +1729,8 @@ da \param{pathname}. \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 @@ -1794,9 +1796,9 @@ filename e su un file descriptor, i loro prototipi sono: 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 @@ -1947,10 +1949,10 @@ sono tre e i loro prototipi sono i seguenti: \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, @@ -2108,9 +2110,9 @@ radice con la funzione \func{chroot}, il cui prototipo \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à