読み方 : エーアールジーシー / エーアールジーブイ

argc/argv

概要

argc/argvとは、C言語およびC++言語において、プログラムの起動時にコマンドライン引数を受け取るための仕組み。main関数の引数として定義され、利用者がプログラム名の後ろに指定した文字列をプログラム内部で参照できるようにする。
argc/argvのイメージ画像

コマンドラインプログラムを実行する際、プログラム名の後ろに半角スペースで区切って文字列を追加することがある。この追加された個々の文字列を「コマンドライン引数」と呼ぶ。argcとargvは、これらの情報を起動時に自動的に格納する変数である。

代表的な定義の形式は「int main(int argc, char *argv[])」である。argcは渡された引数の個数を表す整数型の変数、argvは各引数の文字列を順番に格納した配列型の変数である。

argcの値には、利用者が指定した引数だけでなく、プログラム自身の名前も1つとして数えられる。そのため、引数を何も指定せずに実行した場合でも、argcの値は1となる。利用者が指定した引数の個数を求める場合は、argcから1を引いた値を用いる。

argvの0番目の要素(argv[0])には実行したプログラムの名前またはパスが格納され、利用者が指定した最初の引数はargv[1]、2番目はargv[2]と続く。例えば、sampleという名前のプログラムを「sample input.txt output.txt」のように実行した場合、argcは「3」となり、argv[1]に「input.txt」、argv[2]に「output.txt」が格納される。argvの各要素は文字列型であるため、数値として扱う場合は整数や実数への変換が必要である。

「argc」「argv」という名称はC言語の仕様で規定されているわけではなく、慣習として広く定着した名前である。「argc」は「argument count」(引数カウント)、「argv」は「argument vector」(引数ベクタ)に由来するとされる。LinuxなどのUNIX系OSWindowsなど様々な環境で共通して利用でき、コマンドラインツールファイル変換プログラムなど多くのソフトウェアで、実行時の処理対象や動作モードの指定に活用されている。

(2026.7.7更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。