Problemi con la execl [C]
Inviato: mercoledì 14 maggio 2014, 18:47
Ciao ragazzi.Come da titolo avrei un problema con la execl.In pratica io so che le function della famiglia exec altro non fanno che sostituire l'immagine di un processo con una nuova.Quindi ho provato a cimentarmi da solo in una prova per vedere se avevo capito bene il funzionamento ma sono incappato in un errore.Il codice da me scritto è il seguente:
Allora io non riesco a capire perchè non riesce a sostituire il programma cd con ls -l ,mentre se avessi scritto execl("/bin/ls","ls", "-l", NULL); sarebbe andato tutto a buon fine.Qualcuno mi sa dare delucidazioni a riguardo? Inoltre perchè se scrivo:
quando vado ad eseguire mi compare il messaggio :
Chi sa aiutarmi?Grazie in anticipo! 
Codice: Seleziona tutto
#include<stdio.h>
#include<stdlib.h>
int main (void) {
printf("Sono il processo %d, eseguo una ls -l\n",getpid());
execl("/bin/cd","ls", "-l", NULL); /* Esegue ls -l */
printf("\nSi e' verificato un'errore\n\n");
exit(-1);
}
Codice: Seleziona tutto
execl("/bin/pwd","ls", "-l", NULL);
Codice: Seleziona tutto
ls: opzione non valida -- "l"
Try 'ls --help' for more information.