[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: execvp() e shell invalida...



Mi sembra sbagliata la diagnosi. execvp() funziona.

Il link iniziale mostra questo codice (corretto!)

      execvp(argv[0], argv);
      /* only gets here if execvp fails */
      return -1;

Perche` exec non ritorna. E se tornasse la funzione tornerebbe -1, non 1.
"rc" = return command.  Qui e` il processo figlio che fa exit(1).

Consiglio di guardarlo con "strace -f" per vedere cosa fa il processo
figlio e perche` termina male.

Ovviamente non si vedranno le sue if che sbagliano e generano l'errore,
ma spesso la sequenza di chiamate di sistema indica chiaramente cosa
e` andato storto.  Certo, se il codice fa solo:

   if (!getenv("VARIABILE_STRANA")) exit(1);

mica lo vediamo da strace, ma e` improbabile che non si noti niente
di sbagliato nei suoi accessi.


Reply to: