From: Simone Piccardi Date: Wed, 26 Dec 2001 17:31:52 +0000 (+0000) Subject: Correzioni ortografiche X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=commitdiff_plain;h=ba007b78543f53433b49aba62109a90848dccf0f;p=gapil.git Correzioni ortografiche --- diff --git a/filestd.tex b/filestd.tex index 13934c3..1c5c288 100644 --- a/filestd.tex +++ b/filestd.tex @@ -942,7 +942,7 @@ L'output formattato viene eseguito con una delle 13 funzioni della famiglia o quello specificato) la terza permette di stampare su una stringa, in genere l'uso di \func{sprintf} è sconsigliato in quanto è possibile, se non si ha la sicurezza assoluta sulle dimensioni del risultato della stampa, eccedere le -dimensioni di \param{str} con conseguente sovrascrittura di altre varibili e +dimensioni di \param{str} con conseguente sovrascrittura di altre variabili e possibili buffer overflow; per questo motivo si consiglia l'uso dell'alternativa: \begin{prototype}{stdio.h} @@ -1010,7 +1010,7 @@ generale essa % [n. parametro $] [flag] [[larghezza] [. precisione]] [tipo] conversione \end{verbatim} \end{center} -in cui tutti i valori tranne il \cmd{\%} e lo specificatatore di conversione +in cui tutti i valori tranne il \cmd{\%} e lo specificatore di conversione sono opzionali (e per questo sono indicati fra parentesi quadre); si possono usare più elementi opzionali, nel qual caso devono essere specificati in questo ordine: @@ -1056,17 +1056,17 @@ di \func{printf} e nella documentazione delle \acr{glibc}. \textbf{Valore} & \textbf{Significato} \\ \hline \hline - \cmd{hh} & una conversione intera corriponde a un \type{char} con o senza + \cmd{hh} & una conversione intera corrisponde a un \type{char} con o senza segno, o il puntatore per il numero dei parametri \cmd{n} è di tipo \type{char}.\\ - \cmd{h} & una conversione intera corriponde a uno \type{short} con o + \cmd{h} & una conversione intera corrisponde a uno \type{short} con o senza segno, o il puntatore per il numero dei parametri \cmd{n} è di tipo \type{short}.\\ - \cmd{l} & una conversione intera corriponde a un \type{long} con o + \cmd{l} & una conversione intera corrisponde a un \type{long} con o senza segno, o il puntatore per il numero dei parametri \cmd{n} è di tipo \type{long}, o il carattere o la stringa seguenti sono in formato esteso.\\ - \cmd{ll} & una conversione intera corriponde a un \type{long long} con o + \cmd{ll} & una conversione intera corrisponde a un \type{long long} con o senza segno, o il puntatore per il numero dei parametri \cmd{n} è di tipo \type{long long}.\\ \cmd{L} & una conversione in virgola mobile corrisponde a un @@ -1144,7 +1144,7 @@ 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 \secref{sec:proc_var_passing} a proposito dei \textit{value result argument}) l'indirizzo della stringa -allogata automaticamente dalle funzioni. Occorre onoltre ricordarsi di +allogata automaticamente dalle funzioni. Occorre inoltre ricordarsi di invocare \func{free} per liberare detto puntatore quando la stringa non serve più, onde evitare memory leak. @@ -1207,7 +1207,7 @@ cura nella definizione delle corrette stringhe di formato e sono facilmente soggette ad errori, e considerato anche il fatto che è estremamente macchinoso recuperare in caso di fallimento nelle corrispondenze, l'input formattato non è molto usato. In genere infatti quando si ha a che fare con un input -relativamente semplice si preferisce usare l'input di linea ed effetture +relativamente semplice si preferisce usare l'input di linea ed effettuare scansione e conversione di quanto serve direttamente con una delle funzioni di conversione delle stringhe; se invece il formato è più complesso diventa più facile utilizzare uno strumento come il \cmd{flex} per generare un @@ -1252,7 +1252,7 @@ descriptor, ed i parametri, a parte il tipo, hanno lo stesso significato; in particolare \param{whence} assume gli stessi valori già visti in \secref{sec:file_lseek}. La funzione restituisce 0 in caso di successo e -1 in caso di errore. La funzione \func{rewind} riporta semplicemente la -posizione corrente all'inzio dello stream, ma non esattamente equivalente ad +posizione corrente all'inizio dello stream, ma non esattamente equivalente ad una \code{fseek(stream, 0L, SEEK\_SET)} in quanto vengono cancellati anche i flag di errore e fine del file. @@ -1496,7 +1496,7 @@ necessario (come in tutti i programmi che non usano i thread), tutta la procedura può comportare dei pesanti costi in termini di prestazioni. Per questo motivo abbiamo visto in come per tutte le funzioni di I/O non formattato esistano delle versioni \code{\_unlocked} (alcune previste dallo -standard POSIX stesso, altre aggiunte come estenzioni dalle \acr{glibc}) che +standard POSIX stesso, altre aggiunte come estensioni dalle \acr{glibc}) che possono essere usate in tutti questi casi\footnote{in certi casi dette funzioni possono essere usate, visto che sono molto più efficiente, anche in caso di necessità di locking, una volta che questo sia stato acquisito @@ -1504,7 +1504,7 @@ possono essere usate in tutti questi casi\footnote{in certi casi dette \func{putc}) queste versioni possono essere realizzate come macro, e sono pertanto in grado di garantire prestazione enormemente più elevate. -La sostituizione di tutte le funzioni di I/O con le relative versioni +La sostituzione di tutte le funzioni di I/O con le relative versioni \code{\_unlocked} in un programma che non usa i thread è però un lavoro abbastanza noioso, e che appesantisce il codice; per questo motivo le \acr{glibc} provvedono un'altra via per poter utilizzare disabilitare il diff --git a/process.tex b/process.tex index b092b2d..0d7a5dc 100644 --- a/process.tex +++ b/process.tex @@ -533,7 +533,7 @@ particolare: \end{itemize*} Il problema più comune e più difficile da risolvere che si incontra con le -routines di allocazione è quando non viene opportunamente liberata la memoria +routine di allocazione è quando non viene opportunamente liberata la memoria non più utilizzata, quello che in inglese viene chiamato \textit{memory-leak}, (cioè \textsl{perdita di memoria}). @@ -576,7 +576,7 @@ non esiste un analogo della \func{free}) in quanto essa viene rilasciata automaticamente al ritorno della funzione. Come è evidente questa funzione ha molti vantaggi, anzitutto permette di -evitare alla readice i problemi di memory leak, dato che non serve più la +evitare alla radice i problemi di memory leak, dato che non serve più la deallocazione esplicita; inoltre la deallocazione automatica funziona anche quando si usa \func{longjmp} per uscire da una subroutine con un salto non locale da una funzione (vedi \secref{sec:proc_longjmp}). @@ -796,9 +796,9 @@ messo in esecuzione. Oltre al passaggio dei parametri, un'altra modalità che permette di passare delle informazioni che modifichino il comportamento di un programma è quello dell'uso del cosiddetto \textit{environment} (cioè l'uso delle -\textsl{varibili di ambiente}). In questa sezione esamineremo le funzioni che +\textsl{variabili di ambiente}). In questa sezione esamineremo le funzioni che permettono di gestire parametri e opzioni, e quelle che consentono di -manipolare ed utilizzare le varibili di ambiente. +manipolare ed utilizzare le variabili di ambiente. \subsection{Il formato dei parametri} @@ -844,7 +844,7 @@ Per gestire le opzioni all'interno dei argomenti a linea di comando passati in \var{argv} le librerie standard del C forniscono la funzione \func{getopt} che ha il seguente prototipo: \begin{prototype}{unistd.h} -{int getopt(int argc, char * const argv[], const char * optstring)} +{int getopt(int argc, char *const argv[], const char *optstring)} Esegue il parsing degli argomenti passati da linea di comando riconoscendo le possibili opzioni segnalate con \var{optstring}. @@ -1325,7 +1325,7 @@ problema lo standard ISO C99\footnote{alcuni sistemi che non hanno questa eseguire la copia di un puntatore alla lista degli argomenti: \begin{prototype}{stdarg.h}{void va\_copy(va\_list dest, va\_list src)} Copia l'attuale valore \param{src} del puntatore alla lista degli argomenti - su \param{desc}. + su \param{dest}. \end{prototype} \noindent anche in questo caso è buona norma chiudere ogni esecuzione di una \macro{va\_copy} con una corrispondente \macro{va\_end} sul nuovo puntatore @@ -1341,7 +1341,7 @@ In Linux gli argomenti dello stesso tipo sono passati allo stesso modo, sia che siano fissi sia che siano opzionali (alcuni sistemi trattano diversamente gli opzionali), ma dato che il prototipo non può specificare il tipo degli argomenti opzionali, questi verranno sempre promossi, pertanto nella ricezione -dei medesimi ocoorrerà tenerne conto (ad esempio un \type{char} verrà visto da +dei medesimi occorrerà tenerne conto (ad esempio un \type{char} verrà visto da \macro{va\_arg} come \type{int}). @@ -1373,7 +1373,7 @@ sovrascrittura dei dati. Per questo una delle regole fondamentali della programmazione in C è che all'uscita di una funzione non deve restare nessun riferimento alle variabili -locali; qualora sia necessirio utilizzare variabili che possano essere viste +locali; qualora sia necessario utilizzare variabili che possano essere viste anche dalla funzione chiamante queste devono essere allocate esplicitamente, o in maniera statica (usando variabili di tipo \type{static} o \type{extern}), o dinamicamente con una delle funzioni della famiglia \func{malloc}. diff --git a/prochand.tex b/prochand.tex index 7a7bef4..e632e24 100644 --- a/prochand.tex +++ b/prochand.tex @@ -1032,7 +1032,7 @@ famiglia di funzioni) che possono essere usate per questo compito, che in realtà (come mostrato in \figref{fig:proc_exec_relat}), costituiscono un front-end a \func{execve}. Il prototipo di quest'ultima è: \begin{prototype}{unistd.h} -{int execve(const char * filename, char * const argv [], char * const envp[])} +{int execve(const char *filename, char *const argv[], char *const envp[])} Esegue il programma contenuto nel file \param{filename}. \bodydesc{La funzione ritorna -1 solo in caso di errore, nel qual caso @@ -1748,7 +1748,7 @@ altri. Queste situazioni comportano pertanto errori estremamente subdoli e difficili da tracciare, in quanto nella maggior parte dei casi tutto funzionerà regolarmente, e solo occasionalmente si avranno degli errori. -Per questo occorre essere ben consapovoli di queste problematiche, e del fatto +Per questo occorre essere ben consapevoli di queste problematiche, e del fatto che l'unico modo per evitarle è quello di riconoscerle come tali e prendere gli adeguati provvedimenti per far si che non si verifichino. Casi tipici di \textit{race condition} si hanno quando diversi processi accedono allo stesso @@ -1766,7 +1766,7 @@ completo di un servizio, e non il fallimento di una singola operazione. L'esempio tipico di una situazione che può condurre ad un \textit{deadlock} è quello in cui un flag di ``occupazione'' viene rilasciato da un evento asincrono (come un segnale o un altro processo) fra il momento in cui lo si è -controllato (trovadolo occupato) e la successiva operazione di attesa per lo +controllato (trovandolo occupato) e la successiva operazione di attesa per lo sblocco. In questo caso, dato che l'evento di sblocco del flag è avvenuto senza che ce ne accorgessimo proprio fra il controllo e la messa in attesa, quest'ultima diventerà perpetua (da cui il nome di \textit{deadlock}).