Будет ли утекать память, если ее выделять до фызова fork(), а затем уничтожать _только_ _в_ _родительском_ _процессе_, а дочерний заменять при вызове execvp(), как в приведенном ниже примере? Если да, то как этой утечки избежать?
// переменная pathlen определена
// где-то выше, также как и
// функция fillpath()
pid_t child_pid = 0;
char *path = (char*)malloc(pathlen);
fillpath(path);
child_pid = fork();
if(child_pid == 0) {
// Дочерний процесс
char *arglist[] = {path, NULL};
execvp(path, arglist);
printf("Can not start...\n");
}
// Родительский процесс
// В родительском процессе память
// освобождается
free(path);