著者:崎間
main関数に引数をつけることで,コマンドラインから引数を取得することができます.
main関数の引数は
int main(int argc, char *argv[]){
と指定します.
これを使ったプログラムは,例えばつぎのようになります.
#include <stdio.h> int main(int argc, char *argv[]){ int i; printf("argc = %d\n", argc); for (i=0 ; i<argc ; i++) { printf("argv[%d] = %s\n", i, argv[i]); } return 0; }
このプログラムを実行するとき,コマンドラインで引数をつけます.
$ ./arg1 1 2 sakima
すると実行結果は下のようになります.
argc = 4 argv[0] = ./arg1 argv[1] = 1 argv[2] = 2 argv[3] = sakima
argcは「コマンドラインのパラメータの数+1」の整数です. 1足してあるのは,プログラムを実行したコマンド自体(./arg1)も含まれるためです.これは,配列argvの大きさになっています.
argv[0], argv[1], ... は argv[0] プログラムファイルのパスの文字列へのポインタ argv[1] 1番目のコマンドライン引数の文字列へのポインタ argv[2] 2番目のコマンドライン引数の文字列へのポインタ ... ...
のようにコマンドライン引数の文字列へのポインタが納められた配列になっています.