Mi fallisce ancora... Ora posto tutto il codice, magari può essere utile.
Questo è il programma che lancio inizialmente (situato nella cartella Scrivania/Esercizi/Exec):
codice:
#include <unistd.h>
#include <iostream>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
using namespace std;
int main(void){
pid_t pid;
switch (pid=fork()){
case -1:
cout << "Errore" << endl;
break;
case 0:
cout << "Inizio processo figlio" << endl;
execl("Scrivania/Esercizi/Pid/start", "start", (char *) 0);
cout << "Exec fallito" << endl;
break;
default:
wait((int *)0);
cout << "Fine!!";
exit(0);
}
}
Mentre quello contenuto nel path specificato dall'exec è questo:
codice:
#include <iostream>
#include <unistd.h>
using namespace std;
int main(void){
int pid,ppid;
pid = getpid();
cout << "\n Sono il processo con ID " << pid << endl;
ppid = getppid();
cout << "\n Mio padre è " << ppid << endl ;
return 0;
}
Se faccio partire singolarmente il secondo programma va tutto liscio, quindi il problema è per forza nell'exec, visto che continuo a leggere "Exec fallito"..