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