spamsink: (Default)
[personal profile] spamsink
Сделайте разумное предположение (educated guess), зачем бы нужно было рестартовать обычный пользовательский юниксный процесс, ничего не меняя в его аргументах или окружении.

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

    // Далее - собственно функциональная часть программы
}

Date: 2025-07-08 05:44 am (UTC)
vak: (Default)
From: [personal profile] vak
Если размер памяти, выделенной процессу, больше некоторого порога.

Date: 2025-07-09 02:12 am (UTC)
vak: (Default)
From: [personal profile] vak
Но если память навыделялась, освободить эти страницы уже непросто.

Date: 2025-07-09 03:01 am (UTC)
vak: (Default)
From: [personal profile] vak
Вдруг у тебя в "некоторых действиях, не использующих и не меняющих argv и envp" загружается и обрабатывается большой массив данных.

Date: 2025-07-09 05:43 am (UTC)
vak: (Default)
From: [personal profile] vak
Ну тогда моя гипотеза не годится.
Page generated Jul. 24th, 2025 01:31 am
Powered by Dreamwidth Studios