4964298bb9861361a2af22366a0e2f86c242d742
[gapil.git] / fileunix.tex
1 \chapter{I files: l'interfaccia I/O di unix}
2 \label{cha:file_unix_interface}
3
4 Esamineremo in questo capitolo la prima delle due interfacce di programmazione
5 per i file, quella dei file descriptor, nativa di unix. Questa è 
6 l'interfaccia di basso livello, che non prevede funzioni evolute come la
7 bufferizzazione o funzioni di lettura o scrittura formattata, su cui è
8 costruita anche l'interfaccia standard dei file definta dallo standard ANSI
9 C. 
10
11
12
13 \section{L'architettura di base}
14 \label{sec:file_base_arch}
15
16 Iniziamo la trattazione con una panoramica sull'architettura base della
17 intefaccuia dei file descriptor. Esamineremo in questa sezione 
18
19
20 \subsection{I file descriptors}
21 \label{sec:file_fd}
22
23 Per poter accedere al contenuto dei file occorre anzitutto aprirlo. Questo
24 crea un canale di comunicazione che permette di eseguire una serie di
25 operazioni. Una volta terminate le operazioni, il file dovrà essere chiuso, e
26 questo chiuderà il canale di comunicazione impedendo ogni ulteriore
27 operazione.
28
29 \section{Le funzioni base}
30 \label{sec:file_base_func}
31
32 L'interfaccia standard unix per l'input/output sui file è su cinque funzioni
33 \texttt{open}, \texttt{read}, \texttt{write}, \texttt{lseek}, \texttt{close}; 
34
35
36 \subsection{La funzione \texttt{open}}
37 \label{sec:file_open}
38
39 \subsection{La funzione \texttt{creat}}
40 \label{sec:file_creat}
41
42 \subsection{La funzione \texttt{close}}
43 \label{sec:file_close}
44
45 \subsection{La funzione \texttt{lseek}}
46 \label{sec:file_lseek}
47
48 \subsection{La funzione \texttt{read}}
49 \label{sec:file_read}
50
51 \subsection{La funzione \texttt{write}}
52 \label{sec:file_write}
53
54 \section{La condivisione dei files}
55 \label{sec:file_sharing}
56
57
58 \subsection{Operazioni atomiche}
59 \label{sec:file_atomic}
60
61 \section{Funzioni avanzate}
62 \label{sec:file_adv_func}
63
64 \subsection{La funzioni \texttt{dup} e \texttt{dup2}}
65 \label{sec:file_dup}
66
67 \subsection{La funzione \texttt{fcntl}}
68 \label{sec:file_fcntl}
69
70 \subsection{La funzione \texttt{ioctl}}
71 \label{sec:file_ioctl}
72
73
74
75