/ / Cross-platform spôsob, ako vypnúť počítač - c + +, operačný systém

Cesta cez platformu k vypnutiu počítača - c ++, operačný systém

Rád by som realizoval funkciu cross-plaftormvypnutie počítača bez použitia akéhokoľvek API špecifického pre systém, ale funkcie stdlib.h std :: system. Sotva som našiel na webe spoľahlivý zdroj.

Na systémoch Windows nasledujú tieto úlohy:

#if defined(_WIN32) || defined(__WIN32) || defined(__WIN32__)
std::system("shutdown -s -t 0");
#endif

Aký by mal byť príkaz na iných operačných systémoch (ako Linux, Mac OSX atď.)?

odpovede:

2 pre odpoveď č. 1

Na vašich * nix systémoch by mali fungovať nasledovné.

#include <cstdlib>

int main()
{
system("shutdown -P now");
return 0;
}

Vyššie uvedený kód však predpokladá, že ste prihlásený ako koreň a ak nie ste, dostanete chybu, kým nie ste prihlásení ako root.

Neexistuje žiadna "krížová platforma", ako to urobiť, s výnimkou použitia výkazu prepínača alebo if-else série výkazov pre správnu syntax zadaného operačného systému.


2 pre odpoveď č. 2

Neexistuje príkaz na vypnutie naprieč platformou.

Musíte sa pozrieť na príkaz vypnutiav operačnom systéme, ktorý chcete mať, a potom skontrolujte, na ktorom operačnom systéme je klient spustený, a v závislosti od toho, že môžete vybrať správny príkaz alebo kód na vypnutie konkrétneho systému.