Да предположим, че компилирам и стартирам примера от учебника на fork().
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
int main(void)
{
pid_t pid;
pid = fork();
if (pid == -1)
return 1;
if (pid == 0)
puts("From child process.");
else
puts("From parent process.");
return 0;
}
Кодът от двата клона на оператора if (pid == 0)
стига ли до fork()
? С други думи, дъщерният процес съдържа ли код, предназначен за родителя, който никога няма да бъде изпълнен от него и обратно? Или може/може ли компилаторът да оптимизира това?