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

C言語のコマンドライン引数とは?argcとargvの使い方をわかりやすく解説

OSに対して特定のタスクを実行させる実行可能な命令のことを「コマンド」と呼びます。コマンドは、OSのコマンドプロンプトから入力することで発行されます。

コマンドライン引数を構成する2つの要素

コマンドに関連付けられる引数には、主に以下の2つがあります。

  • argc(argument count)─ 引数の個数
  • argv(argument vector)─ 引数ベクトル

argc とは

argc は、コマンドプロンプトから渡された引数の総数を保持する変数です。プログラム名自身も1つとしてカウントされる点に注意してください。

argv とは

argv は、各引数の名前が格納された文字列配列へのポインタです。argv[0] には必ずプログラム名が入り、argv[1] 以降に実際に渡された引数が順番に格納されます。

具体例

次のようにコマンドプロンプトから入力した場合を見てみましょう。

c:\> sample.exe hello how are you

この場合、各変数の内容は以下のようになります。

  • argc = 5
  • argv[0] = sample.exe
  • argv[1] = hello
  • argv[2] = how
  • argv[3] = are
  • argv[4] = you

サンプルプログラム

以下は、コマンドライン引数を受け取って表示するC言語プログラムの例です。

#include <stdio.h>

int main(int argc, char *argv[]) {
    int i;

    /* コマンドライン引数の総数を表示 */
    printf("コマンドライン引数の個数 = %d\n", argc);

    /* 渡された引数を順番に表示 */
    printf("コマンドプロンプトで入力された引数:\n");
    for (i = 1; i < argc; i++) {
        printf("%s\n", argv[i]);
    }

    return 0;
}

このプログラムでは、まず argc の値(引数の総数)を出力し、その後 for ループを使って argv[1] から最後の引数までを順番に表示しています。argv[0] はプログラム名そのものであるため、ループは i = 1 から開始しています。

実行方法と出力結果

コマンドライン引数付きでCプログラムを実行する手順は以下の通りです。

  1. プログラムをコンパイルする
  2. 実行ファイルを生成する
  3. コマンドプロンプトを開き、引数を付けてプログラムを実行する
c:\> sample.exe hello how are you
コマンドライン引数の個数 = 5
コマンドプロンプトで入力された引数:
hello
how
are
you

このように、コマンドライン引数を使えば、プログラムの実行時に外部からデータを渡すことができ、同じプログラムでも与える引数によって柔軟に動作を変えられます。ファイル名の指定やオプションの切り替えなど、実用的なプログラムを作るうえで欠かせない重要な概念です。

  1. Pythonでコマンドライン引数にアクセスする方法をわかりやすく解説

    コマンドラインとは、オペレーティングシステムに対して実行可能なコマンドを入力するための場所です。Pythonスクリプトは、コマンドライン上でpython実行ファイルの後ろにスクリプト名を記述することで実行できます。C:\users\acer>python test.pyスクリプトの処理に何らかのデータを受け渡したい場合は、スクリプト名に続けて、スペース区切りの値として記述します。このスペースで区切られた値のリストは「コマンドライン引数」と呼ばれます。コマンドライン引数の例C:\users\acer>python test.py Hello TutorialsPointスペースで区切

  2. Bash/Linuxの「$@」(コマンドライン引数)とは何か?使い方を徹底解説

    この記事では、Bashおよびシェルスクリプトにおける特殊変数「$@」の意味と、その使い方、そしてどのような場面で役立つのかについて詳しく解説します。 $@は、スクリプトに渡されたすべてのコマンドライン引数(パラメータ)の値を保持する特別な変数です。 Bashにおけるコマンドライン引数とは シェルスクリプトでコマンドライン引数を使用できることは、非常に重要かつ便利な機能です。引数を使うことで、同じスクリプトをさまざまな入力に対して柔軟に動作させることができます。 本記事は、シェル/Bashスクリプトにおけるコマンドライン引数の基礎知識を前提としています。まずは基本的な位置パラメータ($1、$2な