Correzioni alla citazione del codice
[gapil.git] / ipc.tex
diff --git a/ipc.tex b/ipc.tex
index e0fef633d8d75c4f75cb8cb805f5aad3f10f3a41..536d0960ce3a5c81630a339dc56c8f771f7ed484 100644 (file)
--- a/ipc.tex
+++ b/ipc.tex
@@ -184,7 +184,7 @@ nel file \file{BarCodePage.c} che si trova nella directory dei sorgenti.
 int main(int argc, char *argv[], char *envp[])
 {
     ...
 int main(int argc, char *argv[], char *envp[])
 {
     ...
-    /* create two pipes to handle process communication */
+    /* create two pipes, pipein and pipeout, to handle communication */
     if ( (retval = pipe(pipein)) ) {
         WriteMess("input pipe creation error");
         exit(0);        
     if ( (retval = pipe(pipein)) ) {
         WriteMess("input pipe creation error");
         exit(0);        
@@ -204,14 +204,14 @@ int main(int argc, char *argv[], char *envp[])
         dup2(pipein[0], STDIN_FILENO);   /* remap stdin to pipe read end */
         close(pipeout[0]);
         dup2(pipeout[1], STDOUT_FILENO); /* remap stdout in pipe output */
         dup2(pipein[0], STDIN_FILENO);   /* remap stdin to pipe read end */
         close(pipeout[0]);
         dup2(pipeout[1], STDOUT_FILENO); /* remap stdout in pipe output */
-        execlp("barcode", "barcode", size, NULL); //"-o", "-",  NULL);
+        execlp("barcode", "barcode", size, NULL);
     } 
     close(pipein[0]);                    /* close input side of input pipe */
     write(pipein[1], argv[1], strlen(argv[1]));  /* write parameter to pipe */
     close(pipein[1]);                    /* closing write end */
     waitpid(pid, NULL, 0);               /* wait child completion */
     /* Second fork: use child to run ghostscript */
     } 
     close(pipein[0]);                    /* close input side of input pipe */
     write(pipein[1], argv[1], strlen(argv[1]));  /* write parameter to pipe */
     close(pipein[1]);                    /* closing write end */
     waitpid(pid, NULL, 0);               /* wait child completion */
     /* Second fork: use child to run ghostscript */
-    if ( (pid = fork()) == -1) {          /* on error exit */
+    if ( (pid = fork()) == -1) {
         WriteMess("child creation error");
         exit(0);
     }
         WriteMess("child creation error");
         exit(0);
     }
@@ -240,7 +240,7 @@ La prima operazione del programma (\texttt{\small 4--12}) 
 le due pipe che serviranno per la comunicazione fra i due comandi utilizzati
 per produrre il codice a barre; si ha cura di controllare la riuscita della
 chiamata, inviando in caso di errore un messaggio invece dell'immagine
 le due pipe che serviranno per la comunicazione fra i due comandi utilizzati
 per produrre il codice a barre; si ha cura di controllare la riuscita della
 chiamata, inviando in caso di errore un messaggio invece dell'immagine
-richiesta.\footnote{la funzione \func{WriteMess}, non è riportata in
+richiesta.\footnote{la funzione \func{WriteMess} non è riportata in
   \secref{fig:ipc_barcodepage_code}; essa si incarica semplicemente di
   formattare l'uscita alla maniera dei CGI, aggiungendo l'opportuno
   \textit{mime type}, e formattando il messaggio in HTML, in modo che
   \secref{fig:ipc_barcodepage_code}; essa si incarica semplicemente di
   formattare l'uscita alla maniera dei CGI, aggiungendo l'opportuno
   \textit{mime type}, e formattando il messaggio in HTML, in modo che
@@ -376,7 +376,7 @@ originarie del codice a barre e produce un JPEG delle dimensioni adeguate.
 Questo però ci porta a scontrarci con una caratteristica peculiare delle pipe,
 che a prima vista non è evidente. Per poter effettuare la conversione di un
 PDF infatti è necessario, per la struttura del formato, dover eseguire delle
 Questo però ci porta a scontrarci con una caratteristica peculiare delle pipe,
 che a prima vista non è evidente. Per poter effettuare la conversione di un
 PDF infatti è necessario, per la struttura del formato, dover eseguire delle
-\func{lseek} sul file da convertire; se si esegue \cmd{gs} su un file normale
+\func{lseek} sul file da convertire; se si esegue \cmd{gs} su un file regolare
 non ci sono problemi, ma una pipe però è rigidamente sequenziale, ed il
 tentativo di eseguire detta operazione su una pipe comporta l'immediato
 fallimento con un errore di \macro{ESPIPE}.  Questo ci dice che in generale la
 non ci sono problemi, ma una pipe però è rigidamente sequenziale, ed il
 tentativo di eseguire detta operazione su una pipe comporta l'immediato
 fallimento con un errore di \macro{ESPIPE}.  Questo ci dice che in generale la
@@ -614,12 +614,13 @@ oggetto. Per far questo a ciascuno di essi viene anche associata una
 stessa chiave due processi diversi potranno ricavare l'identificatore
 associato ad un oggetto e accedervi entrambi.
 
 stessa chiave due processi diversi potranno ricavare l'identificatore
 associato ad un oggetto e accedervi entrambi.
 
-
 Questa caratteristica mostra il primo dei problemi associati al sistema di IPC
 di System V. Un secondo problema riguarda le modalità per l'accesso a questi
 oggetti. 
 
 
 Questa caratteristica mostra il primo dei problemi associati al sistema di IPC
 di System V. Un secondo problema riguarda le modalità per l'accesso a questi
 oggetti. 
 
 
+
+
 \subsection{Code di messaggi}
 \label{sec:ipc_messque}
 
 \subsection{Code di messaggi}
 \label{sec:ipc_messque}