X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=fileunix.tex;h=1bae4dd1a392cb4148cb7e9b20698647c13b8d53;hb=c49e97bdcba8e4da8578d5a048a5764a622aff1e;hp=2d297ec77c517d8f7a2515e8b2bc628a304092be;hpb=6f8e0ca42d3d0b97b5e5747798a1eaffb44e8521;p=gapil.git diff --git a/fileunix.tex b/fileunix.tex index 2d297ec..1bae4dd 100644 --- a/fileunix.tex +++ b/fileunix.tex @@ -296,7 +296,7 @@ descriptor con il valore pi \itindex{Denial~of~Service~(DoS)} \textit{DoS}\protect\footnotemark\ quando \func{opendir} viene chiamata su una fifo o su un - device di unità a nastri, non deve essere utilizzato + dispositivo a nastri; non deve essere utilizzato al di fuori dell'implementazione di \func{opendir}. \\ \const{O\_LARGEFILE}&nel caso di sistemi a 32 bit che supportano file di grandi dimensioni consente di aprire file le cui @@ -455,9 +455,9 @@ descriptor ritorna disponibile; il suo prototipo ed inoltre \errval{EIO}.} \end{prototype} -La chiusura di un file rilascia ogni blocco (il \textit{file - locking}\index{file!locking} è trattato in sez.~\ref{sec:file_locking}) che -il processo poteva avere acquisito su di esso; se \param{fd} è l'ultimo +La chiusura di un file rilascia ogni blocco (il \textit{file locking} +\index{file!locking} è trattato in sez.~\ref{sec:file_locking}) che il +processo poteva avere acquisito su di esso; se \param{fd} è l'ultimo riferimento (di eventuali copie) ad un file aperto, tutte le risorse nella file table vengono rilasciate. Infine se il file descriptor era l'ultimo riferimento ad un file su disco quest'ultimo viene cancellato. @@ -651,7 +651,7 @@ posizione \param{offset}, nel buffer \param{buf}. La funzione prende esattamente gli stessi argomenti di \func{read} con lo stesso significato, a cui si aggiunge l'argomento \func{offset} che indica una -posizione sul file. Indetico è il comportamento ed il valore di ritorno. La +posizione sul file. Identico è il comportamento ed il valore di ritorno. La funzione serve quando si vogliono leggere dati dal file senza modificare la posizione corrente. @@ -839,7 +839,7 @@ problema, quando si andr maniera imprevedibile. Il sistema però fornisce in alcuni casi la possibilità di eseguire alcune operazioni di scrittura in maniera coordinata anche senza utilizzare meccanismi di sincronizzazione più complessi (come il \textit{file - locking}\index{file!locking}, che esamineremo in + locking} \index{file!locking}, che esamineremo in sez.~\ref{sec:file_locking}). Un caso tipico di necessità di accesso condiviso in scrittura è quello in cui @@ -1051,8 +1051,8 @@ descriptor, che non riguardano la normale lettura e scrittura di dati, ma la gestione sia delle loro proprietà, che di tutta una serie di ulteriori funzionalità che il kernel può mettere a disposizione.\footnote{ad esempio si gestiscono con questa funzione varie modalità di I/O asincrono (vedi - sez.~\ref{sec:file_asyncronous_operation}) e il file - locking\index{file!locking} (vedi sez.~\ref{sec:file_locking}).} + sez.~\ref{sec:file_asyncronous_operation}) e il file locking + \index{file!locking} (vedi sez.~\ref{sec:file_locking}).} Per queste operazioni di manipolazione e di controllo delle varie proprietà e caratteristiche di un file descriptor, viene usata la funzione \funcd{fcntl}, @@ -1197,7 +1197,8 @@ relative. In particolare le tematiche relative all'I/O asincrono e ai vari meccanismi di notifica saranno trattate in maniera esaustiva in sez.~\ref{sec:file_asyncronous_access} mentre quelle relative al \textit{file locking}\index{file!locking} saranno esaminate in -sez.~\ref{sec:file_locking}). +sez.~\ref{sec:file_locking}). L'uso di questa funzione con i socket verrà +trattato in sez.~\ref{sec:sock_ctrl_func}. Si tenga presente infine che quando si usa la funzione per determinare le modalità di accesso con cui è stato aperto il file (attraverso l'uso del @@ -1216,7 +1217,7 @@ accesso dal \textit{file status flag}. \subsection{La funzione \func{ioctl}} \label{sec:file_ioctl} -Benché il concetto di \textit{everything is a file} si sia dimostratato molto +Benché il concetto di \textit{everything is a file} si sia dimostrato molto valido anche per l'interazione con i dispositivi più vari, fornendo una interfaccia che permette di interagire con essi tramite le stesse funzioni usate per i normali file di dati, esisteranno sempre caratteristiche @@ -1240,9 +1241,9 @@ file descriptor. Il prototipo di questa funzione caso di errore viene sempre restituito $-1$ ed \var{errno} assumerà uno dei valori: \begin{errlist} - \item[\errcode{ENOTTY}] il file \param{fd} non è associato con un device, o - la richiesta non è applicabile all'oggetto a cui fa riferimento - \param{fd}. + \item[\errcode{ENOTTY}] il file \param{fd} non è associato con un + dispositivo, o la richiesta non è applicabile all'oggetto a cui fa + riferimento \param{fd}. \item[\errcode{EINVAL}] gli argomenti \param{request} o \param{argp} non sono validi. \end{errlist} @@ -1283,11 +1284,12 @@ imprevedibili o indesiderati. Data la assoluta specificità della funzione, il cui comportamento varia da dispositivo a dispositivo, non è possibile fare altro che dare una descrizione -sommaria delle sue caratteristiche; torneremo ad esaminare in seguito quelle -relative ad alcuni casi specifici (ad esempio la gestione dei terminali è -effettuata attraverso \func{ioctl} in quasi tutte le implementazioni di Unix), -qui riportiamo solo i valori di alcuni comandi che sono definiti per ogni -file: +sommaria delle sue caratteristiche; torneremo ad esaminare in +seguito\footnote{per l'uso con i socket si veda + sez.~\ref{sec:sock_ctrl_func}.} quelle relative ad alcuni casi specifici +(ad esempio la gestione dei terminali è effettuata attraverso \func{ioctl} in +quasi tutte le implementazioni di Unix), qui riportiamo solo i valori di +alcuni comandi che sono definiti per ogni file: \begin{basedescript}{\desclabelwidth{2.0cm}} \item[\const{FIOCLEX}] Imposta il flag di \textit{close-on-exec}\itindex{close-on-exec}. @@ -1298,6 +1300,8 @@ file: \end{basedescript} relativi ad operazioni comunque eseguibili anche attraverso \func{fcntl}. + + % TODO estendere la lista delle ioctl @@ -1305,3 +1309,25 @@ relativi ad operazioni comunque eseguibili anche attraverso \func{fcntl}. %%% mode: latex %%% TeX-master: "gapil" %%% End: + +% LocalWords: descriptor system call cap like kernel sez l'inode inode VFS tab +% LocalWords: process table struct files flags pos all'inode dentry fig shell +% LocalWords: error POSIX STDIN FILENO STDOUT STDERR unistd read write lseek +% LocalWords: close pathname sys fcntl int const char errno EEXIST CREAT EXCL +% LocalWords: EISDIR ENOTDIR ENXIO NOBLOCK WRONLY fifo ENODEV ETXTBSY ELOOP of +% LocalWords: NOFOLLOW EACCES ENAMETOOLONG ENOENT EROFS EFAULT ENOSPC ENOMEM +% LocalWords: EMFILE ENFILE NFS lock race condition Denial Service DoS RDONLY +% LocalWords: glibc RDWR NONBLOCK NOCTTY SHLOCK shared BSD EXLOCK TRUNC device +% LocalWords: opendir LARGEFILE APPEND append NDELAY ASYNC l'I SIGIO SYNC SVr +% LocalWords: DSYNC RSYNC filesystem DIRECT caching SGI IRIX dell'I FreeBSD fd +% LocalWords: fork exec umask SOURCE creat filedes EBADF EINTR EIO locking off +% LocalWords: behind sync flush shutdown whence ESPIPE socket EINVAL INCR XTND +% LocalWords: SEEK CUR EPIPE ssize void buf size count EAGAIN EWOULDBLOCK log +% LocalWords: Specification pwrite pread EFBIG SIGPIPE nell'inode dall'inode +% LocalWords: CLOEXEC stat fsync cache update l'update bdflush Documentation +% LocalWords: fdatasync fstat ext dup oldfd newfd DUPFD cmd long arg flock pid +% LocalWords: SETFD GETFD GETFL SETFL GETLK SETLK SETLKW GETOWN group SIGURG +% LocalWords: SETOWN GETSIG SETSIG sigaction SIGINFO siginfo SETLEASE lease is +% LocalWords: truncate GETLEASE NOTIFY all'I AND ACCMODE ioctl everything argp +% LocalWords: framebuffer request ENOTTY CDROM nell'header magic number +% LocalWords: FIOCLEX FIONCLEX FIOASYNC FIONBIO