Ich mache wenig assigment, die Gabel-, Vfork- und Klonfunktion beinhaltet. Ich muss Benutzer, System, Echtzeit des Elternteils und aller Kindprozesse messen. Mess Benutzer und Systemzeit ist einfach, in Echtzeit zu messen, ich Zeit von sys/times.h aufrufen, speichern den Wert und die Kind-Prozess ruftMesszeit des Prozesses und seiner Kinder
_exit(times(NULL)-procReal)
und ich füge hinzu, diesen Wert zu einer anderen Variablen (siehe Code unten) .
Meine Frage ist, sollte der Wert, den ich speichere, kurz vor oder kurz nach der Gabel berechnet werden?
procReal=times(NULL);//here
#ifdef FORK
pid=fork();
#elif VFORK
pid=vfork();
#endif
procReal=times(NULL);//or maybe here
if (pid <0)
error_sys_f("fork failed");
else if (pid ==0)
{
foo();
}
else
{
wait(&statLoc);
if (WIFEXITED(statLoc))
childrenReal+=WEXITSTATUS(statLoc);
else
error_sys_f("unnormal exit from children");
}
procReal ist eine globale Variable.