普段、
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% |