普段、
oyabun% mule myprog.c oyabun% cc -o myprog myprog.c -lglscd -lX11 -lm |
これをどう実現するか、例で示す。
sample-argc.c |
#include <stdio.h> main(argc, argv) int argc; char **argv; { int i; for (i = 0; i < argc; i++) printf("argv[%d]=%s\n", i, argv[i]); } |
oyabun% ./sample-arg 1 two "three san 3" argv[0]=./sample-arg argv[1]=1 argv[2]=two argv[3]=three san 3 oyabun% |
例えば、次のプログラムは、引数がなければ標準入力から、引数があればそ れをファイル名としてそこから、2 数を読み出して、和を計算するプログラム である。
sample-arg2.c |
#include <stdio.h> main(argc, argv) int argc; char **argv; { int a, b; FILE *in; if (argc == 2) in = fopen(argv[1], "r"); else in = stdin; fscanf(in, "%d %d", &a, &b); printf("%d\n", a + b); } |
oyabun% sample-arg2 2 3 5 oyabun% echo 3 4>in oyabun% sample-arg2 in 7 oyabun% |