C/C++でシステムをシャットダウンするプログラムを作成する方法
システムをシャットダウンするプログラムは、Windows、Linux、macOSなどのオペレーティングシステム上で動作し、コンピューターの電源を切り、開いているすべてのアプリケーションを閉じることができます。
シャットダウン(電源オフ)とは?
シャットダウンまたは電源オフとは、コンピューターの主要な構成要素への電力供給を、定められた正しい手順に従って安全に遮断し、コンピューターが行っているすべての作業(アプリケーションの動作や各種処理)を終了させることを意味します。シャットダウン後は、CPU、RAMモジュール、ハードディスクドライブなどの主要コンポーネントの電源が切られますが、内部時計など一部の内部部品には引き続き電力が供給される場合があります。
この記事で紹介するプログラムを実行すると、コンピューターシステムがシャットダウンされます。Windowsでは、標準ヘッダー「stdio.h」に含まれるsystem関数を使用して、C:\WINDOWS\system32フォルダ内に存在する実行ファイルshutdown.exeを呼び出します。
Linuxの場合も基本的な仕組みは同じで、system関数経由でシェルコマンドを実行します。以下にOSごとの具体的なコードを解説します。
Windowsの場合
#include <stdio.h>
int main() {
system("c:\\windows\\system32\\shutdown /i");
return 0;
}このプログラムは、オペレーティングシステムに対して「すべてのアプリケーションを閉じてシステムをシャットダウンせよ」という命令を送るコマンドとして機能します。
なお、オプション「/i」を指定するとリモートシャットダウンのダイアログが表示されます。即座にシャットダウンしたい場合は「/s」を、再起動したい場合は「/r」を使用するとよいでしょう。
Linux OSの場合
#include <stdio.h>
int main() {
system("shutdown -P now");
return 0;
}このコードは、Linuxベースのあらゆるオペレーティングシステムをシャットダウンできます。コードがシステムに直接コマンドを渡して実行するため、呼び出しからわずかですぐにシステムがシャットダウンします。
オプション「-P」は電源オフを意味し、引数「now」は即時実行を指定しています。例えば10分後にシャットダウンしたい場合は「shutdown -P +10」のように分単位で遅延時間を指定することも可能です。
実行時の注意点
この種のプログラムを実行すると、保存されていないデータが失われる恐れがあります。実行前には必ず作業中のファイルを保存してください。また、環境によっては管理者権限(root権限)が必要になる場合がある点にも注意しましょう。
-
C++の再帰を使って木(ツリー)のサイズを計算するプログラムの作成方法
この問題では、二分木が与えられ、「再帰」を使って木のサイズを計算するプログラムを作成することが課題となります。 ここでいう木のサイズとは、その木に含まれるノードの総数のことです。 具体例を見ながら問題を理解していきましょう。 上の木の場合、サイズは 5 となります。 解法の考え方:再帰によるサイズ計算 木のサイズを求めるには、左部分木のサイズ + 右部分木のサイズ + 1(現在のノード) を計算します。再帰関数は、木の左右それぞれの部分木に対して呼び出され、部分木が存在しない(NULL の)場合は 0 を返します。 上記の例をこの手法で解いてみる ルート(値3)のサイズを求める場合: si
-
C++で作る「ハッピー・ウィメンズデイ」出力プログラム
世界中でお祝いされる「女性の日」。この記事では、その祝福メッセージをC++のコンソールプログラムとして出力する方法をご紹介します。記号「#」で描かれた円の中央に「7 Oct」と「Happy Womens Day」の文字列を表示し、さらにその下にはアスタリスク(*)でリボンのような模様を描く構成になっています。 サンプルコード #include <iostream> using namespace std; int main(){ // デザインのサイズを初期化 int n = 5; // 円(デザインの上半分)を描画するループ // 外側のループで高