巻取

書いてる内容があってるかはしりません

【Linux】コマンドラインを受けたい

 Linuxにおいたプログラムでコマンドラインから引数を受ける方法
 
 実行ファイルを指定して実行する際に勝手に引数を渡しても、引数が多すぎるなどのエラーは起こらない。引数を受けるプログラム側で受け皿を用意すれば、引き取ることができる。
 argc(argument count)が引数の個数を、argv(argument vector)が引数が実際に格納された配列を指し、そこへのポインタを渡してあげることで、プログラムから引数を参照できるようになる。
 なおargvのひとつめ(インデックスでいうと0)にはプログラム名が入っているので(例外はある)、引数が格納されるのはふたつめから。第一引数がインデックス1に、第二引数がインデックス2に入るかんじ。


 

#chek_cl_args

#include <stdio.h>
#include <stdlib.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]);
        }
        exit(0);

 これをビルドして実行してみると、argcで引数の個数を、argvで実際の引数をリストで受けていることを確認することができる。

[makitori@instance ckeck_cl_args]$ gcc -o check_cl_args check_cl_args.c
[makitori@instance ckeck_cl_args]$ ./check_cl_args arg1 arg2 arg3
#argc=4
#argv[0]=./check_cl_args
#argv[1]=arg1
#argv[2]=arg2
#argv[3]=arg3