X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileadv.tex;h=a4f8229095c3ccb4dc5ab7a272330072dca3c446;hp=19f7dabdf8f371337bc8bec1b4f235d2cddc37f4;hb=271b1b8bf70e62b5ab4457895664400ff6f51973;hpb=0c3c06a023684951f7f1e189d270cf322c0dfe31 diff --git a/fileadv.tex b/fileadv.tex index 19f7dab..a4f8229 100644 --- a/fileadv.tex +++ b/fileadv.tex @@ -357,7 +357,8 @@ viene utilizzato per specificare il file descriptor relativo al file da controllare, mentre nel campo \var{events} deve essere specificata una maschera binaria data in ingresso che indichi il tipo di evento che si vuole controllare, il kernel restituirà il relativo risultato nel campo -\var{revents}. +\var{revents}. Usando un valore negativo per \param{fd} la corrispondente +struttura sarà ignorata da \func{poll}. Le costanti che definiscono i valori relativi ai bit usati nelle maschere binarie dei campi \var{events} e \var{revents} sono riportati in @@ -1124,6 +1125,14 @@ l'emissione di un segnale di violazione di accesso (\const{SIGSEGV}), dato che i permessi sul segmento di memoria relativo non consentono questo tipo di accesso. +\begin{figure}[!htb] + \centering + \includegraphics[width=10cm]{img/mmap_boundary} + \caption{Schema della mappatura in memoria di una sezione di file di + dimensioni non corrispondenti al bordo di una pagina.} + \label{fig:file_mmap_boundary} +\end{figure} + È invece assai diversa la questione relativa agli accessi al di fuori della regione di cui si è richiesta la mappatura. A prima vista infatti si potrebbe ritenere che anch'essi debbano generare un segnale di violazione di accesso; @@ -1137,15 +1146,6 @@ file non rientra nei confini di una pagina: in tal caso verr mappato su un segmento di memoria che si estende fino al bordo della pagina successiva. -\begin{figure}[htb] - \centering - \includegraphics[width=10cm]{img/mmap_boundary} - \caption{Schema della mappatura in memoria di una sezione di file di - dimensioni non corrispondenti al bordo di una pagina.} - \label{fig:file_mmap_boundary} -\end{figure} - - In questo caso è possibile accedere a quella zona di memoria che eccede le dimensioni specificate da \param{lenght}, senza ottenere un \const{SIGSEGV} poiché essa è presente nello spazio di indirizzi del processo, anche se non è