PDA

View Full Version : esercizio processi


stella_650
19-05-2008, 17:09
Ciao a tutti.
Ho un esercizio sui processi da fare ma ho riscontrato un problema nell'esecuzione dovuto probabilmente ad un errore di implementazione.
L'esercizio chiede di realizzare un frammento di codice in cui un processo A crea un processo che esegue il comando ls. Quando termina, il programma A stampa un messaggio identificativo del processo; se ha restituito un codice di terminazione diverso da -1 crea un processo che esegue nuovamente ls ripetendo questo comportamento fintanto che il processo creato nn restituisce il codice di terminazione -1 oppure la sua creazione fallisce per qualche motivo. A tal punto anche il processo A termina.

Quoto il codice implementato, anche se mandandolo in esecuzione cos', anche se la prima ls la esegue, quella relativa ai processi figli generati nn riesco a motivarla. C'è qualcuno disponibile a darmi una mano?...grazie, confido nella vostra disponibilità.


#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
int main(void)
{
pid_t pid,pid1;
int status,wpid;
pid=fork();
if(pid<0)
printf("Errore sulla creazione della fork");
if(pid==0)
{
printf("\nSTO ESEGUENDO UNA LS\n");
execl("/bin/ls","ls",(char*)0);
}
wpid=wait(&status);
printf("\nE' terminato il processo con id=%d e il suo codice di terminazione e' %d\n",getpid(),wpid);
do
{
pid1=fork();
//printf("\nSono un nuovo processo con id=%d\n",getpid());
execl("/bin/ls","ls",(char*)0);
}while((wpid!=-1) || (pid1==0));

}

ilsensine
20-05-2008, 09:24
http://www.hwupgrade.it/forum/showthread.php?t=1649196