@@ -44,19 +44,21 @@ int main(int argc, char *argv[]) {
4444
4545 /* Creazione del file speciale FIFO o named pipe */
4646 if (mkfifo (argv [1 ], PERMS ) == -1 ) {
47- fprintf (stderr , "Err: %d mkfifo()\n" , errno , strerror (errno ));
47+ fprintf (stderr , "[%ld]Err: mkfifo() %s: %s\n" , (long )getpid (),
48+ argv [1 ], strerror (errno ));
4849 exit (EXIT_FAILURE );
4950 }
5051
5152 /* Creazione di un nuovo processo */
5253 if ((pid = fork ()) == -1 ) {
53- fprintf (stderr , "Err: %d fork()\n" , errno , strerror (errno ));
54+ fprintf (stderr , "[%ld]Err: fork(): %s\n" , (long )getpid (),
55+ strerror (errno ));
5456 exit (EXIT_FAILURE );
5557 }
5658
5759 if (pid == 0 )
5860 /* Processo figlio: si occupa di scrivere */
59- return fifo_child (argv [1 ], "Scrittura del processo figlio sulla FIFO " );
61+ return fifo_child (argv [1 ], "\"MESSAGGIO DAL PROCESSO FIGLIO\"\n " );
6062 else
6163 /* Processo padre */
6264 return fifo_parent (argv [1 ]);
@@ -72,11 +74,12 @@ int fifo_child(const char *fifo_name, const char *id_str)
7274 int fd , rval ;
7375 ssize_t str_size ;
7476
75- fprintf (stderr , "[%ld]: (processo figlio) apertura FIFO %s..." ,
77+ fprintf (stderr , "[%ld]: (processo figlio) apertura FIFO %s...\n " ,
7678 (long )getpid (), fifo_name );
7779
7880 while ((fd = open (fifo_name , O_WRONLY )) == -1 ) {
79- fprintf (stderr , "[%ld]Err: %d open() FIFO scrittura\n" , (long )getpid ());
81+ fprintf (stderr , "[%ld]Err: open() FIFO scrittura %s: %s\n" ,
82+ (long )getpid (), fifo_name , strerror (errno ));
8083 exit (EXIT_FAILURE );
8184 }
8285
@@ -91,44 +94,44 @@ int fifo_child(const char *fifo_name, const char *id_str)
9194 /* Calcolo della lunghezza del messaggio */
9295 str_size = strlen (buf ) + 1 ;
9396
94- fprintf (stderr , "[%ld]: scrittura..." , (long )getpid ());
97+ fprintf (stderr , "[%ld]: scrittura...\n " , (long )getpid ());
9598
9699 /* Si scrive 'buf' sulla FIFO */
97100 if ((rval = write (fd , buf , str_size )) != str_size ) {
98101 fprintf (stderr , "[%ld]Err: scrittura pipe\n" , (long )getpid ());
99102 exit (EXIT_FAILURE );
100103 }
101104
102- fprintf (stderr , "[%ld]: conclusione..." , (long )getpid ());
105+ fprintf (stderr , "[%ld]: conclusione...\n " , (long )getpid ());
103106
104107 return (EXIT_SUCCESS );
105108}
106109
107110/* Lo scopo della funzione fifo_parent() e' di consentire al processo padre di
108111leggere da una named pipe. */
109- fifo_parent (const char * fifo_name )
112+ int fifo_parent (const char * fifo_name )
110113{
111114 char buf [BUF_SIZE ];
112115 int fd , rval ;
113- ssize_t str_size ;
114116
115- fprintf (stderr , "[%ld]: (processo padre) apertura FIFO %s..." ,
117+ fprintf (stderr , "[%ld]: (processo padre) apertura FIFO %s...\n " ,
116118 (long )getpid (), fifo_name );
117119
118120 while ((fd = open (fifo_name , O_RDONLY )) == -1 ) {
119- fprintf (stderr , "[%ld]Err: %d open() FIFO lettura\n" , (long )getpid ());
121+ fprintf (stderr , "[%ld]Err: open() FIFO lettura %s: %s\n" ,
122+ (long )getpid (), fifo_name , strerror (errno ));
120123 exit (EXIT_FAILURE );
121124 }
122125
123- fprintf (stderr , "[%ld]: lettura..." , (long )getpid ());
126+ fprintf (stderr , "[%ld]: lettura...\n " , (long )getpid ());
124127
125128 /* Lettura */
126129 if ((rval = read (fd , buf , BUF_SIZE )) == -1 ) {
127130 fprintf (stderr , "[%ld ]Err: lettura dalla pipe\n" , (long )getpid ());
128131 exit (EXIT_FAILURE );
129132 }
130133
131- fprintf (stderr , "[%ld] lettura %.*s\n" , (long )getpid (), rval , buf );
134+ fprintf (stderr , "[%ld]: lettura %.*s\n" , (long )getpid (), rval , buf );
132135
133136 return (EXIT_SUCCESS );
134137}
0 commit comments