Varie correzioni, completata revisione capitolo sull'I/O su file
[gapil.git] / sources / BarCode.c
index fbea4aee3eb8a5fa8f1cbe83750c6d5ec42ed423..872eacedf6fcc246126b9288029b25dd38dc59af 100644 (file)
  * http://localhost/cgi-bin/barcode?string
  * where string is the code to be converted
  *
- * $Id: BarCode.c,v 1.4 2002/06/28 17:59:24 piccardi Exp $ 
- *
  ****************************************************************/
 /* 
  * Include needed headers
  */
-#include <sys/types.h>   /* predefined types */
-#include <sys/stat.h>    /* stat deinitiions */
-#include <unistd.h>      /* include unix standard library */
-/* */
-#include <stdio.h>      /* include standard I/O library */
-#include <stdlib.h>     /* include standard library */
-#include <string.h>     /* include string library */
-#include <wait.h>       /* include wait call */
-#include <fcntl.h>
-#include <assert.h>
-#include <time.h>
+#include <sys/types.h>   /* primitive system data types */
+#include <sys/stat.h>    /* file characteristics constants and functions */
+#include <unistd.h>      /* unix standard library */
+#include <stdio.h>      /* standard I/O library */
+#include <stdlib.h>     /* C standard library */
+#include <string.h>     /* C strings library */
+#include <wait.h>       /* process termination constants and functions */
+#include <fcntl.h>      /* file control functions */
+#include <assert.h>     /* C assertion functions */
+#include <time.h>        /* date and time constants, types and functions */
 
 #include"macros.h"
-void WriteMess(char *mess);
-
 
 /* Program begin */
 int main(int argc, char *argv[], char *envp[])
@@ -67,9 +62,8 @@ int main(int argc, char *argv[], char *envp[])
     }; 
     char content[]="Content-type: image/png\n\n";
     int i;
-    /* write mime-type to stout */ 
+    /* write mime-type to stdout */ 
     write(STDOUT_FILENO, content, strlen(content));
-    
     /* execute chain of command */
     for (i=0; i<4; i++) {
        pipe[i] = popen(cmd_string[i], "w");
@@ -77,20 +71,12 @@ int main(int argc, char *argv[], char *envp[])
     }
     /* create barcode (in PS) */
     pipein = popen("barcode", "w");
-    /* send barcode string */
+    /* send barcode string to barcode program */
     write(fileno(pipein), argv[1], strlen(argv[1]));
-    /* close all pipes */
+    pclose(pipein);
+    /* close all pipes (in reverse order) */
     for (i=4; i==0; i--) {
        pclose((pipe[i]));
     }
     exit(0);
 }
-/*
- * Routine to produce an HTML error message on output 
- */
-void WriteMess(char *mess)
-{
-    printf("Content-type: text/html\n\n");
-    perror(mess);
-    printf("<br>\n");
-}