X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filestd.tex;h=9ff0123f341ff11801f94586b61471223bfd76df;hp=9d06757cd1d02302f4a8ff1c372a2c31913308f8;hb=def262af3493f8e141a94b4efe09a8d84b8f7c70;hpb=c474f4307db945bc45287edd0ea4c2c29374d0ee diff --git a/filestd.tex b/filestd.tex index 9d06757..9ff0123 100644 --- a/filestd.tex +++ b/filestd.tex @@ -862,12 +862,12 @@ linea. Quest'ultimo \emph{deve} essere stato allocato in precedenza con una locale); come secondo parametro la funzione vuole l'indirizzo della variabile contenente le dimensioni del buffer suddetto. -Se il buffer di destinazione è sufficientemente ampio la stringa viene -scritta subito, altrimenti il buffer viene allargato usando -\func{realloc} e la nuova dimensione ed il nuovo puntatore vengono -passata indietro (si noti infatti come per entrambi i parametri si siano -usati dei \textit{value result argument}, passando dei puntatori anziché -i valori delle variabili, secondo la tecnica spiegata in +Se il buffer di destinazione è sufficientemente ampio la stringa viene scritta +subito, altrimenti il buffer viene allargato usando \func{realloc} e la nuova +dimensione ed il nuovo puntatore vengono passata indietro (si noti infatti +come per entrambi i parametri si siano usati dei +\index{\textit{value~result~argument}}\textit{value result argument}, passando +dei puntatori anziché i valori delle variabili, secondo la tecnica spiegata in sez.~\ref{sec:proc_var_passing}). Se si passa alla funzione l'indirizzo di un puntatore impostato a \val{NULL} @@ -1141,10 +1141,11 @@ sono: Entrambe le funzioni prendono come parametro \param{strptr} che deve essere l'indirizzo di un puntatore ad una stringa di caratteri, in cui verrà restituito (si ricordi quanto detto in sez.~\ref{sec:proc_var_passing} a -proposito dei \textit{value result argument}) l'indirizzo della stringa -allocata automaticamente dalle funzioni. Occorre inoltre ricordarsi di -invocare \func{free} per liberare detto puntatore quando la stringa non serve -più, onde evitare memory leak\index{memory leak}. +proposito dei \index{\textit{value~result~argument}}\textit{value result + argument}) l'indirizzo della stringa allocata automaticamente dalle +funzioni. Occorre inoltre ricordarsi di invocare \func{free} per liberare +detto puntatore quando la stringa non serve più, onde evitare memory +leak\index{memory leak}. Infine una ulteriore estensione GNU definisce le due funzioni \func{dprintf} e \func{vdprintf}, che prendono un file descriptor al posto dello stream. Altre