%% license is included in the section entitled "GNU Free Documentation
%% License".
%%
+
\chapter{I file: l'interfaccia standard Unix}
\label{cha:file_unix_interface}
alternativa di usare un file con un nome univoco e la funzione \func{link}
per verificarne l'esistenza (vedi sez.~\ref{sec:ipc_file_lock}).}
-\footnotetext[3]{acronimo di \itindex{Denial~of~Service~(DoS)} \textit{Denial
- of Service}, si chiamano così attacchi miranti ad impedire un servizio
- causando una qualche forma di carico eccessivo per il sistema, che resta
- bloccato nelle risposte all'attacco.}
-
\begin{table}[!htb]
\centering
\footnotesize
- \begin{tabular}[c]{|l|p{12cm}|}
+ \begin{tabular}[c]{|l|p{13cm}|}
\hline
\textbf{Flag} & \textbf{Descrizione} \\
\hline
\label{tab:file_open_flags}
\end{table}
+\footnotetext[3]{acronimo di \itindex{Denial~of~Service~(DoS)} \textit{Denial
+ of Service}, si chiamano così attacchi miranti ad impedire un servizio
+ causando una qualche forma di carico eccessivo per il sistema, che resta
+ bloccato nelle risposte all'attacco.}
+
\footnotetext[4]{il problema è che NFS non supporta la scrittura in
\itindex{append~mode} \textit{append}, ed il kernel deve simularla, ma
questo comporta la possibilità di una \itindex{race~condition} \textit{race
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:
+alcuni comandi che sono definiti per ogni file ordinario:
\begin{basedescript}{\desclabelwidth{2.0cm}}
-\item[\const{FIOCLEX}] Imposta il flag di \itindex{close-on-exec}
- \textit{close-on-exec}.
-\item[\const{FIONCLEX}] Cancella il flag di \itindex{close-on-exec}
- \textit{close-on-exec}.
-\item[\const{FIOASYNC}] Abilita l'I/O asincrono.
-\item[\const{FIONBIO}] Abilita l'I/O in modalità non bloccante.
+\item[\const{FIOCLEX}] imposta il flag di \itindex{close-on-exec}
+ \textit{close-on-exec} sul file.
+\item[\const{FIONCLEX}] cancella il flag di \itindex{close-on-exec}
+ \textit{close-on-exec} sul file.
+\item[\const{FIOASYNC}] abilita la modalità di I/O asincrono sul file (vedi
+ sez.~\ref{sec:file_asyncronous_operation}).
+\item[\const{FIONBIO}] abilita sul file l'I/O in modalità non bloccante.
+\item[\const{FIOSETOWN}] imposta il processo che riceverà i segnali
+ \const{SIGURG} e \const{SIGIO} generati sul file.
+\item[\const{FIOGETOWN}] legge il processo che riceverà i segnali
+ \const{SIGURG} e \const{SIGIO} generati sul file.
+\item[\const{FIONREAD}] legge il numero di byte disponibili in lettura sul
+ file descriptor.
+%\item[\const{FIOQSIZE}] .
\end{basedescript}
-relativi ad operazioni comunque eseguibili anche attraverso \func{fcntl}.
-
-
+di cui però i primi sei sono relativi ad operazioni che si possono eseguire
+anche tramite \func{fcntl}.
% TODO estendere la lista delle ioctl sui file
-%%% Local Variables:
-%%% 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: 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: truncate GETLEASE NOTIFY AND ACCMODE ioctl everything argp all'I
% LocalWords: framebuffer request ENOTTY CDROM nell'header magic number
% LocalWords: FIOCLEX FIONCLEX FIOASYNC FIONBIO NOATIME
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "gapil"
+%%% End: