Ciao, vorrei sapere se, volendo calcolare il tempo necessario per effettuare una fork(), e' indifferente far terminare immediatamente o meno il figlio nato dalla fork stessa.
Ovvero: questi 2 modi di calcolare il tempo di fork si "equivalgono" ?
Modo 1:
codice:
int pid;
long int forkTime;
struct timeval * start = (struct timeval*) malloc(sizeof(struct timeval));
struct timeval * end = (struct timeval*) malloc(sizeof(struct timeval));
gettimeofday(start, NULL);
pid = fork();/*Ometto il controllo sull'errore per brevita'...*/
if (pid == 0)
exit(EXIT_SUCCESS);
/*Qui arriva solo il padre*/
gettimeofday(end, NULL);
forkTime = (end->tv_sec - start->tv_sec) * 1000000 + (end->tv_usec - start->tv_usec); /*Tempo in microsecondi/*
free(start);
free(end);
Modo 2:
codice:
int pid;
long int forkTime;
struct timeval * start = (struct timeval*) malloc(sizeof(struct timeval));
struct timeval * end = (struct timeval*) malloc(sizeof(struct timeval));
gettimeofday(start, NULL);
pid = fork();/*Ometto il controllo sull'errore per brevita'...*/
if (pid == 0)
{
/*Qua faccio qualcosa*/
/*Ad esempio...*-/
sleep(2);
exit(EXIT_SUCCESS);
}
/*Qui arriva solo il padre*/
gettimeofday(end, NULL);
forkTime = (end->tv_sec - start->tv_sec) * 1000000 + (end->tv_usec - start->tv_usec); /*Tempo in microsecondi/*
free(start);
free(end);
Grazie !