codice:
#include <stdio.h>
#include <sys/wait.h>
#include <unistd.h>

main(int argc, char **argv)
{
  int sono_il_padre;
  int figlio_defunto, status;

  sono_il_padre = fork();

  if (sono_il_padre) {
     figlio_defunto = wait(&status);
     printf("\n E` terminato il processo %d, lo stato e` %d\n",
        figlio_defunto, status);
     fflush(stdout);
  }
  else {
    printf("\n figlio: nasco e muoio"); fflush(stdout);
    exit(atoi(argv[1]));
       }
}
Sono esempi (ve ne proporrò una caterva, preparatevi...) di interazione fra processi, nel listato qui sopra non mi è chiaro (ho già fatto man exit..) perchè con exit 0 status valga 0 e

exit=1 -> status=256
exit=2 -> status=512
exit=3 -> status=768

non colgo il legame fra le coppie di valori... (a dire il vero non colgo nemmeno l'utilità del programma :gren: )..

Mi ero fermato al fatto che se un programma/processo termina e ritorna 0 è tutto ok, per i valori restituiti (-1, 1, 2) a seconda del programma c'è una codifica del tipo di errore, questa è la mia esperienza delle applicazioni su unix.. Thanks