X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filedir.tex;h=c294d7d05f68be42cf5e30914680f388de3a3efc;hp=4eb9f56af6d07b0a041e7b851bcfad04d76580b7;hb=2ee09e1100e6d070dbf5d4d13d900dba516d83de;hpb=b7d7d53a7edf4b2d1803041bc82136d0c07ba516 diff --git a/filedir.tex b/filedir.tex index 4eb9f56..c294d7d 100644 --- a/filedir.tex +++ b/filedir.tex @@ -2442,10 +2442,10 @@ la stampa della sintassi, anch'essa omessa, ma il codice completo può essere trovato coi sorgenti allegati alla guida nel file \file{myls.c}. In sostanza tutto quello che fa il programma, dopo aver controllato -(\texttt{\small 12--15}) di avere almeno un argomento, che indicherà la +(\texttt{\small 12-15}) di avere almeno un argomento, che indicherà la directory da esaminare, è chiamare (\texttt{\small 16}) la funzione \myfunc{dir\_scan} per eseguire la scansione, usando la funzione \code{do\_ls} -(\texttt{\small 22--29}) per fare tutto il lavoro. +(\texttt{\small 22-29}) per fare tutto il lavoro. Quest'ultima si limita (\texttt{\small 26}) a chiamare \func{stat} sul file indicato dalla directory entry passata come argomento (il cui nome è appunto @@ -2472,15 +2472,15 @@ Tutto il grosso del lavoro è svolto dalla funzione \myfunc{dir\_scan}, riportata in fig.~\ref{fig:file_dirscan}. La funzione è volutamente generica e permette di eseguire una funzione, passata come secondo argomento, su tutte le voci di una directory. La funzione inizia con l'aprire (\texttt{\small - 18--22}) uno \textit{stream} sulla directory passata come primo argomento, + 18-22}) uno \textit{stream} sulla directory passata come primo argomento, stampando un messaggio in caso di errore. -Il passo successivo (\texttt{\small 23--24}) è cambiare +Il passo successivo (\texttt{\small 23-24}) è cambiare \index{directory~di~lavoro} directory di lavoro (vedi sez.~\ref{sec:file_work_dir}), usando in sequenza le funzioni \func{dirfd} e \func{fchdir} (in realtà si sarebbe potuto usare direttamente \func{chdir} su \var{dirname}), in modo che durante il successivo ciclo (\texttt{\small - 26--30}) sulle singole voci dello \textit{stream} ci si trovi all'interno + 26-30}) sulle singole voci dello \textit{stream} ci si trovi all'interno della directory.\footnote{questo è essenziale al funzionamento della funzione \code{do\_ls}, e ad ogni funzione che debba usare il campo \var{d\_name}, in quanto i nomi dei file memorizzati all'interno di una struttura @@ -5931,17 +5931,17 @@ ACL di un file, passato come argomento. La sezione principale del programma, da cui si è rimossa la sezione sulla gestione delle opzioni, è riportata in fig.~\ref{fig:proc_mygetfacl}. Il -programma richiede un unico argomento (\texttt{\small 16--20}) che indica il +programma richiede un unico argomento (\texttt{\small 16-20}) che indica il file di cui si vuole leggere la ACL. Se questo è presente si usa (\texttt{\small 22}) la funzione \func{get\_acl\_file} per leggerne la ACL, e -si controlla (\texttt{\small 23--26}) se l'operazione ha successo, uscendo con +si controlla (\texttt{\small 23-26}) se l'operazione ha successo, uscendo con un messaggio di errore in caso contrario. Ottenuta la ACL la si converte in formato testuale (\texttt{\small 27}) con la funzione \func{acl\_to\_text}, controllando di nuovo se l'operazione ha -successo (\texttt{\small 28--31}) ed uscendo in caso contrario. Si provvede +successo (\texttt{\small 28-31}) ed uscendo in caso contrario. Si provvede infine a stampare la rappresentazione testuale (\texttt{\small 32}) e dopo -aver liberato (\texttt{\small 33--34}) le risorse allocate automaticamente, si +aver liberato (\texttt{\small 33-34}) le risorse allocate automaticamente, si conclude l'esecuzione. @@ -6371,11 +6371,11 @@ quote.\footnote{questi vengono passati come argomenti dalle funzioni mappate con \macro{QCMD} al comando \const{Q\_GETQUOTA} per ottenere i dati. La funzione viene eseguita all'interno di un condizionale (\texttt{\small - 5--16}) che in caso di successo provvede a costruire (\texttt{\small 6--12}) + 5-16}) che in caso di successo provvede a costruire (\texttt{\small 6-12}) opportunamente una risposta restituendo tramite la opportuna funzione di interfaccia un oggetto Python contenente i dati della struttura \struct{dqblk} relativi a uso corrente e limiti sia per i blocchi che per gli \itindex{inode} -\textit{inode}. In caso di errore (\texttt{\small 13--15}) si usa un'altra +\textit{inode}. In caso di errore (\texttt{\small 13-15}) si usa un'altra funzione dell'interfaccia per passare il valore di \var{errno} come eccezione. \begin{figure}[!htbp] @@ -6392,16 +6392,16 @@ riportata in fig.~\ref{fig:set_block_quota}, che prende gli stessi argomenti della precedente, con lo stesso significato, a cui si aggiungono i valori per il \textit{soft limit} e l'\textit{hard limit}. In questo caso occorrerà, prima di chiamare \func{quotactl}, inizializzare opportunamente -(\texttt{\small 5--7}) i campi della struttura \struct{dqblk} che si vogliono +(\texttt{\small 5-7}) i campi della struttura \struct{dqblk} che si vogliono utilizzare (quelli relativi ai limiti sui blocchi) e specificare gli stessi con \const{QIF\_BLIMITS} in \var{dq.dqb\_valid}. Fatto questo la chiamata a \func{quotactl}, stavolta con il comando \const{Q\_SETQUOTA}, viene eseguita come in precedenza all'interno di un -condizionale (\texttt{\small 9--14}). In questo caso non essendovi da +condizionale (\texttt{\small 9-14}). In questo caso non essendovi da restituire nessun dato in caso di successo si usa (\texttt{\small 10}) una apposita funzione di uscita, mentre si restituisce come prima una eccezione -con il valore di \var{errno} in caso di errore (\texttt{\small 12--13}). +con il valore di \var{errno} in caso di errore (\texttt{\small 12-13}). \subsection{La gestione delle \textit{capabilities}} @@ -7666,14 +7666,14 @@ e si basa su una condizione sulla variabile \var{pid} che se si è usato l'opzione \texttt{-p} è impostata (nella sezione di gestione delle opzioni, che si è tralasciata) al valore del \ids{PID} del processo di cui si vuole leggere le \textit{capabilities} e nulla altrimenti. Nel primo caso -(\texttt{\small 1--6}) si utilizza (\texttt{\small 2}) \func{cap\_get\_proc} +(\texttt{\small 1-6}) si utilizza (\texttt{\small 2}) \func{cap\_get\_proc} per ottenere lo stato delle capacità del processo, nel secondo (\texttt{\small - 7--13}) si usa invece \func{cap\_get\_pid} (\texttt{\small 8}) per leggere + 7-13}) si usa invece \func{cap\_get\_pid} (\texttt{\small 8}) per leggere il valore delle capacità del processo indicato. Il passo successivo è utilizzare (\texttt{\small 15}) \func{cap\_to\_text} per tradurre in una stringa lo stato, e poi (\texttt{\small 16}) stamparlo; infine -(\texttt{\small 18--19}) si libera la memoria allocata dalle precedenti +(\texttt{\small 18-19}) si libera la memoria allocata dalle precedenti funzioni con \func{cap\_free} per poi ritornare dal ciclo principale della funzione.