Altre piccole aggiunte
authorSimone Piccardi <piccardi@gnulinux.it>
Mon, 12 Sep 2011 13:19:44 +0000 (13:19 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Mon, 12 Sep 2011 13:19:44 +0000 (13:19 +0000)
filedir.tex

index c5aee4ee7d8229ec8569b7b3b3f1ee1bb1335efd..a48b85860f4c3d932f5510da27d5bfce06bff533 100644 (file)
@@ -5539,9 +5539,10 @@ tab.~\ref{tab:cap_value_type}.
 
 Per semplificare la gestione delle \textit{capabilities} l'interfaccia prevede
 che sia possibile utilizzare anche una rappresentazione testuale del contenuto
-di un \textit{capability state} e fornisce le opportune funzioni di gestione;
-la prima di queste, che consente di ottenere la rappresentazione testuale, è
-\funcd{cap\_to\_text}, il cui prototipo è:
+di un \textit{capability state} e fornisce le opportune funzioni di
+gestione;\footnote{entrambe erano previste dalla bozza dello standard
+  POSIX.1e.} la prima di queste, che consente di ottenere la rappresentazione
+testuale, è \funcd{cap\_to\_text}, il cui prototipo è:
 \begin{functions}
   \headdecl{sys/capability.h}
 
@@ -5632,7 +5633,30 @@ contiene la rappresentazione testuale. La memoria per il \textit{capability
 con \func{cap\_free}.
 
 Alle due funzioni citate se ne aggiungono altre due che consentono di
-convertire 
+convertire i valori delle costanti di tab.~\ref{tab:proc_capabilities} nelle
+stringhe usate nelle rispettive rappresentazioni e viceversa. Le due funzioni,
+\func{cap\_to\_name} e \func{cap\_from\_name}, sono estensioni specifiche di
+Linux ed i rispettivi prototipi sono:
+\begin{functions}
+  \headdecl{sys/capability.h}
+
+  \funcdecl{char * cap\_to\_name(cap\_value\_t cap)}
+  \funcdecl{int cap\_from\_name(const char *name, cap\_value\_t *cap\_p)}
+  Convertono le \textit{capabilities} dalle costanti alla rappresentazione
+  testuale e viceversa.
+  
+  \bodydesc{La funzione \func{cap\_to\_name} ritorna un valore diverso da
+    \val{NULL} in caso di successo e \val{NULL} in caso di errore, mentre
+    \func{cap\_to\_name} ritorna rispettivamente 0 e $-1$, per entrambe in
+    caso di errore \var{errno} può assumere i valori \errval{EINVAL} o
+    \errval{ENOMEM}.  }
+\end{functions}
+
+La prima funzione restituisce la stringa (allocata automaticamente e che dovrà
+essere liberata con \func{cap\_free}) che corrisponde al valore della
+capacità \param{cap}, mentre la seconda restituisce nella variabile puntata
+da \param{cap\_p} il valore della capacità rappresentata dalla
+stringa \param{name}.
 
 Fin quei abbiamo trattato solo le funzioni di servizio relative alla
 manipolazione dei \textit{capability state}; l'interfaccia di gestione prevede