Difference between revisions of "Execv/fork su file aperto"
Jump to navigation
Jump to search
(Created page with "Ho provato a far "girare" questo piccolo eseguibile, notato l'out ho provato a dare le mie conclusioni (non sono certo della correttezza) <source lang="C"> int main (int argc,...") |
(→cmd) |
||
Line 19: | Line 19: | ||
===cmd=== | ===cmd=== | ||
<source lang="text"> | <source lang="text"> | ||
− | $> ./es echo prova > tmp | + | $> ./es echo prova >> tmp |
</source> | </source> | ||
Latest revision as of 10:55, 2 December 2014
Ho provato a far "girare" questo piccolo eseguibile, notato l'out ho provato a dare le mie conclusioni (non sono certo della correttezza)
int main (int argc, char *argv[])
{
/* nessun controllo */
if ( fork() ){
int t;
wait (&t);
printf ("sono il padre\n");
}
else{
printf ("sono il figlio\n");
execv ("/bin/echo", ++argv);
}
return 0;
}
cmd
$> ./es echo prova >> tmp
out
prova
sono il padre
conclusioni
- fork => padre e figlio condividono lo stesso offset (il figlio stampa prova e il padre stampa "sotto")
- exec => non condivide stesso offset (sono il figlio viene sovrascritto)