Correzioni e introdotte mkstemps e mkostemps.
authorSimone Piccardi <piccardi@gnulinux.it>
Mon, 27 Aug 2018 21:44:51 +0000 (23:44 +0200)
committerSimone Piccardi <piccardi@gnulinux.it>
Mon, 27 Aug 2018 21:44:51 +0000 (23:44 +0200)
filedir.tex
gapil.tex
signal.tex

index 776ff474c8c07e58a4e77020f4384393ccd0c700..0b958c28b0a7ae3b5fd2aa6ccd3787c4dc5cecb2 100644 (file)
@@ -2992,7 +2992,7 @@ verso un file diverso, ottenendo, se il programma sotto attacco ne ha la
 capacità, un accesso privilegiato.\footnote{dal kernel 3.6 sono state
   introdotte delle contromisure, illustrate in
   sez.~\ref{sec:procadv_security_misc}, che rendono impraticabili questo tipo
-  di attacchi ma questa non è una buona scusa per ignorare il problema.}
+  di attacchi, ma questa non è una buona scusa per ignorare il problema.}
 
 \itindend{symlink~attack}
 
@@ -3144,7 +3144,6 @@ prototipo è:
   \end{errlist}}
 \end{funcproto}
 
-
 Come per \func{mktemp} anche in questo caso \param{template} non può essere
 una stringa costante. La funzione apre un file in lettura/scrittura con la
 funzione \func{open}, usando l'opzione \const{O\_EXCL} (si veda
@@ -3170,14 +3169,40 @@ specificamente dalla \acr{glibc},\footnote{la funzione è stata introdotta
   \func{mkstemp}.} 
 \end{funcproto}
 \noindent la cui sola differenza è la presenza dell'ulteriore argomento
-\var{flags} che consente di specificare i flag da passare ad \func{open}
-nell'apertura del file.
+\var{flags} che consente di specificare alcuni ulteriori flag
+(\const{O\_APPEND}, \const{O\_CLOEXEC}, \const{O\_SYNC}, il cui significato
+vedremo in sez.~\ref{sec:file_open_close}) da passare ad \func{open}
+nell'apertura del file. 
+
+Di queste due funzioni sono state poi introdotte a partire dalla \acr{glibc}
+2.11 due varianti, \funcd{mkstemps} e \funcd{mkostemps} che consentono di
+indicare anche un suffisso, i loro prototipo sono:
+
+\begin{funcproto}{
+\fhead{stlib.h}
+\fdecl{int mkstemps(char *template, int suffixlen)}
+\fdesc{Apre un file temporaneo.} 
+\fdecl{int mkostemps(char *template, int suffixlen, int flags)}
+\fdesc{Apre un file temporaneo.} 
+}
+
+{Le funzioni hanno gli stessi valori di ritorno e gli stessi errori di
+  \func{mkstemp} con lo stesso significato tranne \errval{EINVAL} che viene
+  restituito se \param{template} non è di lunghezza pari ad almeno
+  $6+$\param{suffixlen} ed i 6 caratteri prima del suffisso non sono
+  \code{XXXXXX}.}
+\end{funcproto}
 
+Le due funzioni, estensione non standard delle \acr{glibc}, sono identiche a
+\funcd{mkstemp} e \funcd{mkostemp}, ma consentono di avere un nome del file
+nella forma \texttt{prefissoXXXXXXsuffisso} dove la lunghezza del suffisso
+deve essere indicata con \param{suffixlen}.
 
-In OpenBSD è stata introdotta un'altra funzione simile alle precedenti,
-\funcd{mkdtemp}, che crea invece una directory temporanea;\footnote{la
-  funzione è stata introdotta nella \acr{glibc} a partire dalla versione
-  2.1.91 ed inserita nello standard POSIX.1-2008.}  il suo prototipo è:
+Infine con OpenBSD è stata introdotta un'altra funzione simile alle
+precedenti, \funcd{mkdtemp}, che crea invece una directory
+temporanea;\footnote{la funzione è stata introdotta nella \acr{glibc} a
+  partire dalla versione 2.1.91 ed inserita nello standard POSIX.1-2008.}  il
+suo prototipo è:
 
 \begin{funcproto}{
 \fhead{stlib.h}
@@ -3196,7 +3221,7 @@ In OpenBSD è stata introdotta un'altra funzione simile alle precedenti,
 La funzione crea una directory temporanea il cui nome è ottenuto sostituendo
 le \code{XXXXXX} finali di \param{template} con permessi \code{0700} (si veda
 sez.~\ref{sec:file_perm_overview} per i dettagli). Dato che la creazione della
-directory è sempre esclusiva i precedenti problemi di \textit{race condition}
+directory è sempre atomica i precedenti problemi di \textit{race condition}
 non si pongono.
 
 
index 9ac34e8d16abc190f5c3cca88cbe8a60c0980c17..807db6e007c43c86cd38999b80e4f5b1bd38bc5c 100644 (file)
--- a/gapil.tex
+++ b/gapil.tex
 vmargin=1.9cm,inner=1.9cm,outer=1.9cm,bindingoffset=0.89cm]{geometry}
 
 
+
+
 % encodings
 \usepackage[T1]{fontenc}
 \usepackage[utf8]{inputenc}
 \usepackage{ae,aecompl}
 
+% more fonts
+\usepackage{inconsolata}
+
+
 %
 % New header style
 %
@@ -47,9 +53,6 @@ vmargin=1.9cm,inner=1.9cm,outer=1.9cm,bindingoffset=0.89cm]{geometry}
 \ #1}{}}
 
 
-% more fonts
-\usepackage{inconsolata}
-
 % fancy verbatim
 \usepackage{fancyvrb}
 \DefineVerbatimEnvironment{Example}{Verbatim}
index 8af17a65129cf0e5ddab2fa4cf41b6580f5fccd9..951d723d1ad52741b033500f9b56581282d016b4 100644 (file)
@@ -322,7 +322,7 @@ Linux anche a seconda della architettura hardware e della versione del kernel.
 
 Quelli che invece sono stati, almeno a grandi linee, standardizzati, sono i
 nomi dei segnali e le costanti di preprocessore che li identificano, che sono
-tutte nella forma \texttt{SIG\textsl{NOME}}, e sono queste che devono essere
+tutte nella forma \texttt{SIG\textsl{nome}}, e sono queste che devono essere
 usate nei programmi. Come tutti gli altri nomi e le funzioni che concernono i
 segnali, esse sono definite nell'header di sistema \headfile{signal.h}.