From 43863d64be274fa4adfa5db745120aedb5f421c9 Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Mon, 14 Mar 2005 00:02:48 +0000 Subject: [PATCH] Tolti commenti inutili e tolto i "parametri" al posto degli argomenti delle funzioni. --- process.tex | 32 ++++++++++++++++---------------- sources/wwwd.c | 4 ---- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/process.tex b/process.tex index 512e2d7..1127247 100644 --- a/process.tex +++ b/process.tex @@ -62,7 +62,7 @@ linea di comando, in sostanza un prototipo che va sempre bene \includecodesnip{listati/main_def.c} In realtà nei sistemi Unix esiste un'altro modo per definire la funzione -\func{main}, che prevede la presenza di un terzo parametro, \code{char +\func{main}, che prevede la presenza di un terzo argomento, \code{char *envp[]}, che fornisce l'\textsl{ambiente} (vedi sez.~\ref{sec:proc_environ}) del programma; questa forma però non è prevista dallo standard POSIX.1 per cui se si vogliono scrivere programmi portabili è meglio evitarla. @@ -501,7 +501,7 @@ quale si effettua l'allocazione. La memoria allocata dinamicamente deve essere esplicitamente rilasciata usando \func{free}\footnote{le glibc provvedono anche una funzione \func{cfree} definita per compatibilità con SunOS, che è deprecata.} una volta che non -sia più necessaria. Questa funzione vuole come parametro un puntatore +sia più necessaria. Questa funzione vuole come argomento un puntatore restituito da una precedente chiamata a una qualunque delle funzioni di allocazione che non sia già stato liberato da un'altra chiamata a \func{free}, in caso contrario il comportamento della funzione è indefinito. @@ -533,7 +533,7 @@ Un errore abbastanza frequente (specie se si ha a che fare con vettori di puntatori) è quello di chiamare \func{free} più di una volta sullo stesso puntatore; per evitare questo problema una soluzione di ripiego è quella di assegnare sempre a \val{NULL} ogni puntatore liberato con \func{free}, dato -che, quando il parametro è un puntatore nullo, \func{free} non esegue nessuna +che, quando l'argomento è un puntatore nullo, \func{free} non esegue nessuna operazione. Le \acr{glibc} hanno un'implementazione delle routine di allocazione che è @@ -909,9 +909,9 @@ di ambiente \cmd{IFS}. \end{figure} Nella scansione viene costruito il vettore di puntatori \param{argv} inserendo -in successione il puntatore alla stringa costituente l'$n$-simo parametro; la +in successione il puntatore alla stringa costituente l'$n$-simo argomento; la variabile \param{argc} viene inizializzata al numero di argomenti trovati, in -questo modo il primo parametro è sempre il nome del programma; un esempio di +questo modo il primo argomento è sempre il nome del programma; un esempio di questo meccanismo è mostrato in fig.~\ref{fig:proc_argv_argc}. @@ -1020,11 +1020,11 @@ effettua il riordinamento del vettore \param{argv}. \label{sec:proc_opt_extended} Un'estensione di questo schema è costituito dalle cosiddette -\textit{long-options} espresse nella forma \cmd{--option=parameter}, anche la -gestione di queste ultime è stata standardizzata attraverso l'uso di una +\textit{long-options} espresse nella forma \cmd{-{}-option=parameter}, anche +la gestione di queste ultime è stata standardizzata attraverso l'uso di una versione estesa di \func{getopt}. -(NdA: da finire). +(NdA: questa parte verrà inserita in seguito). \subsection{Le variabili di ambiente} @@ -1199,7 +1199,7 @@ separatamente nome e valore della variabile di ambiente, inoltre il valore di variabile esista già, sovrascrivendola se diverso da zero, lasciandola immutata se uguale a zero. -La seconda funzione prende come parametro una stringa analoga quella +La seconda funzione prende come argomento una stringa analoga quella restituita da \func{getenv}, e sempre nella forma \code{NOME=valore}. Se la variabile specificata non esiste la stringa sarà aggiunta all'ambiente, se invece esiste il suo valore sarà impostato a quello specificato da @@ -1273,7 +1273,7 @@ che viene passato alla subroutine variabile, copia che la subroutine potrà modificare a piacere, senza che il valore originale nella routine chiamante venga toccato. In questo modo non occorre preoccuparsi di eventuali effetti delle operazioni della subroutine -sulla variabile passata come parametro. +sulla variabile passata come argomento. Questo però va inteso nella maniera corretta. Il passaggio \textit{by value} vale per qualunque variabile, puntatori compresi; quando però in una @@ -1332,8 +1332,8 @@ sez.~\ref{sec:proc_exec}: \includecodesnip{listati/exec_sample.c} in questo caso la funzione prende due argomenti fissi ed un numero variabile di altri argomenti (che verranno a costituire gli elementi successivi al primo -del vettore \param{argv} passato al nuovo processo). Lo standard ISO C richiede -inoltre che l'ultimo degli argomenti fissi sia di tipo +del vettore \param{argv} passato al nuovo processo). Lo standard ISO C +richiede inoltre che l'ultimo degli argomenti fissi sia di tipo \textit{self-promoting}\footnote{il linguaggio C prevede che quando si mescolano vari tipi di dati, alcuni di essi possano essere \textsl{promossi} per compatibilità; ad esempio i tipi \ctyp{float} vengono convertiti @@ -1341,7 +1341,7 @@ inoltre che l'ultimo degli argomenti fissi sia di tipo \ctyp{int}. Un tipo \textit{self-promoting} è un tipo che verrebbe promosso a sé stesso.} il che esclude vettori, puntatori a funzioni e interi di tipo \ctyp{char} o \ctyp{short} (con segno o meno). Una restrizione ulteriore di -alcuni compilatori è di non dichiarare l'ultimo parametro fisso come +alcuni compilatori è di non dichiarare l'ultimo argomento fisso come \direct{register}. Una volta dichiarata la funzione il secondo passo è accedere ai vari argomenti @@ -1378,7 +1378,7 @@ Le definizioni delle tre macro sono le seguenti: l'ultimo degli argomenti fissi. \funcdecl{type va\_arg(va\_list ap, type)} Restituisce il valore del - successivo parametro opzionale, modificando opportunamente \param{ap}; la + successivo argomento opzionale, modificando opportunamente \param{ap}; la macro richiede che si specifichi il tipo dell'argomento attraverso il parametro \param{type} che deve essere il nome del tipo dell'argomento in questione. Il tipo deve essere \textit{self-promoting}. @@ -1393,7 +1393,7 @@ e ciascuno potr Dopo l'uso di \macro{va\_end} la variabile \param{ap} diventa indefinita e successive chiamate a \macro{va\_arg} non funzioneranno. Si avranno risultati indefiniti anche chiamando \macro{va\_arg} specificando un tipo che non -corrisponde a quello del parametro. +corrisponde a quello dell'argomento. Un altro limite delle macro è che i passi 1) e 3) devono essere eseguiti nel corpo principale della funzione, il passo 2) invece può essere eseguito anche @@ -1445,7 +1445,7 @@ stabilire quanti sono gli argomenti passati effettivamente in una chiamata. Esistono varie modalità per affrontare questo problema; una delle più immediate è quella di specificare il numero degli argomenti opzionali come uno -degli argomenti fissi. Una variazione di questo metodo è l'uso di un parametro +degli argomenti fissi. Una variazione di questo metodo è l'uso di un argomento per specificare anche il tipo degli argomenti (come fa la stringa di formato per \func{printf}). diff --git a/sources/wwwd.c b/sources/wwwd.c index 5d22a87..f9b49fa 100644 --- a/sources/wwwd.c +++ b/sources/wwwd.c @@ -282,7 +282,6 @@ void ServPage(int sockfd) j = 0; while (!feof(file)) { - printf("Loop %d\n", j++); if ( (nleft = full_fread(file, outbuf, 1024)) != 0) { if (ferror(file)) { fprintf(sock, "HTTP/1.0 %s\n", codes[3]); @@ -292,7 +291,6 @@ void ServPage(int sockfd) return; } } - printf("Loop %d rimasti %d\n", j, nleft); if (full_fwrite(sock, outbuf, 1024-nleft) != 0) { if (ferror(file)) { fprintf(sock, "HTTP/1.0 %s\n", codes[3]); @@ -303,8 +301,6 @@ void ServPage(int sockfd) } } } - printf("Ok fin qui!"); -// line = fgets(buffer, MAXLINE, sock); fclose(file); fclose(sock); return; -- 2.30.2