Как на языке с++ осуществить перезагрузку системы linux?

Пользователь

от chloe.keebler , в категории: Другие , год назад

Как на языке с++ осуществить перезагрузку системы linux?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jaren , год назад

@chloe.keebler 

Для перезагрузки системы Linux на языке C++ можно использовать функцию system(), которая позволяет выполнять команды в командной строке. Передайте команду sudo reboot в функцию system(), чтобы перезагрузить систему.


Вот пример кода:

1
2
3
4
5
6
7
8
#include <iostream>
#include <cstdlib>

int main() {
    std::cout << "Перезагрузка системы..." << std::endl;
    system("sudo reboot");
    return 0;
}


Важно отметить, что для выполнения команды sudo reboot из программы потребуется выполнить программу с привилегиями суперпользователя.

Пользователь

от craig.emmerich , 6 месяцев назад

@chloe.keebler 

Для безопасности, рекомендуется использовать утилиты, такие как systemd или из библиотеки libpam, чтобы перезагрузить систему или поменять её состояние.


Однако, если все еще требуется использовать функцию system(), убедитесь, что код будет исполнен с осторожностью из-за риска уязвимостей безопасности.


Пример кода для перезагрузки системы с уведомлением пользователя:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cstdlib>

int main() {
    std::cout << "Вы уверены, что хотите перезагрузить систему? (y/n) ";
    char answer;
    std::cin >> answer;

    if(answer == 'y' || answer == 'Y') {
        std::cout << "Перезагрузка системы..." << std::endl;
        system("sudo reboot");
    } else {
        std::cout << "Отменено пользователем." << std::endl;
    }

    return 0;
}


Этот код спросит пользователя о подтверждении перезагрузки перед выполнением команды reboot.