View Full Version : [c] fork e exec
diadhuit
02-07-2005, 11:29
AIUTOOO!!
Non riesco a capire questo codice: il fork prevede che la prima parte dell'if sia del processo padre, vero? e allora che cosa esegue?
if (fork()){
execpl("p1", "p2", 0);
wait(0);}
execpl("p3", "p4", 0);
:help: :help:
Grazie mille.
Fenomeno85
02-07-2005, 11:47
AIUTOOO!!
Non riesco a capire questo codice: il fork prevede che la prima parte dell'if sia del processo padre, vero? e allora che cosa esegue?
if (fork()){
execpl("p1", "p2", 0);
wait(0);}
execpl("p3", "p4", 0);
:help: :help:
Grazie mille.
per la verità il codice non è dei migliori dato che fork restituisce 0 se figlio e pid se padre.
Cmq il padre esegue la prima execpl e quel wait è solo puffa mentre il figlio fa la seconda execpl
~§~ Sempre E Solo Lei ~§~
maulattu
02-07-2005, 11:51
quoto: la exec sostituisce completamente il codice (+zona di memoria) del figlio che sarà eseguito:
pit_t p=fork();
if (p==0) { //filgio
execv(...);
// TUTTE le istruzioni qui sotto NON saranno mai eseguite!!!
}
else { //padre
//iustruzioni del padre
}
Fenomeno85
02-07-2005, 11:53
quoto: la exec sostituisce completamente il codice (+zona di memoria) del figlio che sarà eseguito:
pit_t p=fork();
if (p==0) { //filgio
execv(...);
// TUTTE le istruzioni qui sotto NON saranno mai eseguite!!!
}
else { //padre
//iustruzioni del padre
}
per la verità non è vero che non verranno mai eseguite. Quelle verranno eseguite quando la execl fallisce :)
~§~ Sempre E Solo Lei ~§~
Fenomeno85
02-07-2005, 11:54
ah per la cronaca usare pid_t è indentico che usare un intero ;) dato che dovrebbe essere solo un typedef pidt di un integer :D
~§~ Sempre E Solo Lei ~§~
diadhuit
02-07-2005, 12:01
GRAZIE!!!
Scusate, ma perché è il figlio a eseguire la seconda execpl, dato che non c'è l'else?
beppegrillo
02-07-2005, 12:08
ah per la cronaca usare pid_t è indentico che usare un intero ;) dato che dovrebbe essere solo un typedef pidt di un integer :D
~§~ Sempre E Solo Lei ~§~
E' un intero ma lo si usa per motivi di compatibilità e di chiarezza del codice :)
Fenomeno85
02-07-2005, 12:09
GRAZIE!!!
Scusate, ma perché è il figlio a eseguire la seconda execpl, dato che non c'è l'else?
perchè è l'unico che può saltare l'if :D
~§~ Sempre E Solo Lei ~§~
beppegrillo
02-07-2005, 12:10
perchè è l'unico che può saltare l'if :D
~§~ Sempre E Solo Lei ~§~
e se la fork fallisce? :D
Fenomeno85
02-07-2005, 12:11
e se la fork fallisce? :D
si inculano a vicenda :D
~§~ Sempre E Solo Lei ~§~
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.