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ď č. 1Na 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.