#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
int main(){
pid_t pid;
pid = fork();
if(pid<0){
fprintf(stderr, "fork failed");
return 1; }
else if(pid == 0){
execlp("bin/ls", "ls", NULL);}
else{
wait(NULL);
printf("child complete\n");
}
return 0;
}
Qui, per quanto ho potuto capire, si crea un processo figlio e sin dalla sua pid restituito da forcella è "0", si entra nel blocco contenente execlp e lo esegue, e poi il genitore aspetta fino a quando le uscite del bambino e quindi stampa "child complete". Per favore correggimi se sbaglio. Ma non ho capito come funziona execlp() qui. Qualcuno può spiegarlo?come funziona la chiamata di sistema execlp()?
Grazie per una risposta gentile e utile. :) – Nikhil