Это действительно вопрос того, что принадлежит внутри функции, которая несколько туманна.Но если ваша функция что-то типа «поместите меня в новый процесс, для которого определенным образом настроена среда», то имеет смысл, чтобы этот код имел такую структуру:
void switch_to_child(){
int pid = fork();
if (pid < 0){
exit_with_an_error();
}
if (pid > 0){
wait_and_exit_in_parent();
}
set_up_child_environment();
}
initialize_stuff();
switch_to_child();
do_child_stuff();
Нас другой стороны, если ваша функция что-то вроде «порождает новый процесс, чтобы сделать что-то», имеет больше смысла для кода иметь такую структуру:
void make_child(){
int pid = fork();
if (pid < 0){
exit_with_an_error();
}
if (pid == 0){
do_child_stuff();
exit_in_child();
}
}
initialize_stuff();
make_child();
wait_and_exit_in_parent();