Загадка для юниксных программистов
Jul. 7th, 2025 04:34 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Сделайте разумное предположение (educated guess), зачем бы нужно было рестартовать обычный пользовательский юниксный процесс, ничего не меняя в его аргументах или окружении.
// Необходимые инклюды int main(int argc, char *argv[], char *envp[]) { // Объявление локальных переменных // Некоторые действия, не использующие и не меняющие argv и envp // fork не делается if (/* условие */) execve("/proc/self/exe", argv, envp); // Маловероятная неудача execve - досада, но не беда, можно продолжать // Далее - собственно функциональная часть программы }
no subject
Date: 2025-07-08 12:14 am (UTC)no subject
Date: 2025-07-08 12:19 am (UTC)no subject
Date: 2025-07-08 12:25 am (UTC)Только тогда это не просто условие, это условие с побочным эффектом.
no subject
Date: 2025-07-08 01:58 am (UTC)Наличие побочного эффекта в условии непринципиально; всегда можно переписать через bool need_to_restart.
no subject
Date: 2025-07-08 12:51 am (UTC)no subject
Date: 2025-07-08 02:03 am (UTC)no subject
Date: 2025-07-08 05:44 am (UTC)no subject
Date: 2025-07-08 07:55 am (UTC)no subject
Date: 2025-07-09 02:12 am (UTC)no subject
Date: 2025-07-09 02:44 am (UTC)no subject
Date: 2025-07-09 03:01 am (UTC)no subject
Date: 2025-07-09 03:34 am (UTC)no subject
Date: 2025-07-09 05:43 am (UTC)no subject
Date: 2025-07-08 12:53 am (UTC)no subject
Date: 2025-07-08 02:02 am (UTC)no subject
Date: 2025-07-08 05:00 am (UTC)no subject
Date: 2025-07-08 07:59 am (UTC)