Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語におけるコマンドライン引数の基本と実例解説

C言語では、プログラムを実行する際にコマンドラインから値を渡すことができます。これらの値はコマンドライン引数と呼ばれ、値をソースコード内に直接書き込む(ハードコーディングする)のではなく、外部からプログラムの動作を制御したい場合に非常に役立ちます。

コマンドライン引数は、main()関数の引数として処理されます。argcは渡された引数の個数を表し、argv[]はプログラムに渡された各引数を指すポインタ配列です。

以下は、コマンドラインから引数が渡されているかどうかをチェックし、その結果に応じて処理を分岐させるシンプルな例です。

サンプルコード

#include <stdio.h>
int main( int argc, char *argv[] ) {
   if( argc == 2 ) {
      printf("The argument supplied is %s\n", argv[1]);
   } else if( argc > 2 ) {
      printf("Too many arguments supplied.\n");
   } else {
      printf("One argument expected.\n");
   }
}

実行結果(引数が1つの場合)

$./a.out testing
The argument supplied is testing

引数が1つだけ渡された場合、argc の値は 2 になります(プログラム名自体も argv[0] としてカウントされるため)。argv[1] に最初の引数が格納され、printf で出力されます。

実行結果(引数が複数の場合)

$./a.out testing1 testing2
Too many arguments supplied.

引数が2つ以上渡されると、argc の値が 3 以上になるため、「引数が多すぎる」というメッセージが表示されます。

実行結果(引数なしの場合)

$./a.out
One argument expected

引数が何も渡されない場合、argc の値は 1 となり、else ブロックが実行されて「引数が1つ必要です」というメッセージが出力されます。

ポイントまとめ

  • argc:コマンドライン引数の総数。プログラム名も含まれるため、最低でも 1 になります。
  • argv[0]:プログラム名自体が格納されます。
  • argv[1] 以降:実際に渡された引数が文字列として順に格納されます。

このように argc と argv を活用することで、実行時の状況に応じて柔軟にプログラムの挙動を変えることができます。ファイル名やオプションを指定して動作を切り替えるツールなどを作る際の基礎となる重要な概念なので、しっかり理解しておきましょう。

  1. Tkinterのボタンコマンドに引数を渡す方法

    Tkinterのボタンコマンドに引数を渡す方法TkinterのButton(ボタン)ウィジェットは、アプリケーション内で定義されたイベントを実行するために広く使われています。ボタンにイベントをバインドしておけば、ユーザーがボタンをクリックしたタイミングで処理が自動的に実行されます。しかし、関数やイベントの外側で定義されたデータや変数をボタンの処理に渡したい場合、そのままではうまく共有できないことがあります。そこで役立つのが、ボタンウィジェットへの引数渡しです。引数を渡せるようにすれば、イベントハンドラ側でその値を受け取り、プログラムの中で自由に活用できるようになります。commandオプション

  2. Windows 10で発生する0x00000667「無効なコマンドライン引数」BSODエラーの対処法

    Windows 10デバイスで特定のアプリケーションを実行した際、またはPCをスリープや休止状態にしようとした際に、0x00000667(ERROR_INVALID_COMMAND_LINE)というストップエラーコードが表示された場合、この記事が問題解決の手助けとなるでしょう。本記事では、ブルースクリーンエラーの考えられる原因を解説し、PCを最高の状態で復旧させるために試せる最適な解決策をご紹介します。 0x00000667ERROR_INVALID_COMMAND_LINEコマンドライン引数が無効です。詳細なコマンドラインヘルプについては、Windows インストーラー SDK を参照して