Difference between revisions of "Execv/fork su file aperto"

From Sistemi Operativi
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,...")
(No difference)

Revision as of 11:53, 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)