サンプル集  >  LinuxC  >  コマンドライン引数
コマンドライン引数
2018/02/26

コマンドライン引数で受け取った値を表示します。

◆環境
OS Linux obsax3 3.2.54 #1 SMP Fri Aug 21 11:26:45 JST 2015 armv7l GNU/Linux
gcc 4.6.3 (Debian 4.6.3-14)

コマンドライン引数の数と値を表示します。

LC014.c
 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
int main( int argc, char *argv[] )
{
    printf( "argc:%d\n", argc );

    int i;
    for ( i = 0; i < argc; i++ )
    {
        printf( "[%d]:%s\n", i, argv[i] );
    }
}

makefile
 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
TARGET = LC014
OBJS = LC014.o
CC = /usr/bin/gcc

$(TARGET): $(OBJS)
        $(CC) -o $@ $(OBJS)
.SUFFIXES: .c.o
.c.o:
        $(CC) -g -Wall -c $<

clean:
        rm -f $(TARGET) $(OBJS)

◆実行結果
# ./LC014
argc:1
[0]:./LC014
# ./LC014 1
argc:2
[0]:./LC014
[1]:1
# ./LC014 1 2 3 4 5 a b c
argc:9
[0]:./LC014
[1]:1
[2]:2
[3]:3
[4]:4
[5]:5
[6]:a
[7]:b
[8]:c

引数に何も指定しなくても0番目の要素に起動パス?が設定されました。

./をつけないで実行するとエラーが出ました。

# LC014
-bash: LC014: コマンドが見つかりません

LC014があるフォルダにパスが通っていないため見つけられないようです。 パスが通っている/usr/local/binにコピーして実行してみました。

# cp -p LC014 /usr/local/bin
# LC014
argc:1
[0]:LC014

./が無くても、0番目の要素には起動コマンド?が設定されました。

▲ PageTop  ■ Home


Copyright (C) 2018 ymlib.com