Загадка для юниксных программистов
Сделайте разумное предположение (educated guess), зачем бы нужно было рестартовать обычный пользовательский юниксный процесс, ничего не меняя в его аргументах или окружении.
// Необходимые инклюды int main(int argc, char *argv[], char *envp[]) { // Объявление локальных переменных // Некоторые действия, не использующие и не меняющие argv и envp // fork не делается if (/* условие */) execve("/proc/self/exe", argv, envp); // Маловероятная неудача execve - досада, но не беда, можно продолжать // Далее - собственно функциональная часть программы }