別のプログラムを起動するプログラム
#include <stdio.h>
int main()
{
char *arglist[3];
arglist[0] = "ls";
arglist[1] = "-l";
arglist[2] = 0;
printf("* * * About to exec ls -l\n");
execvp( "ls" , arglist );
printf("* * * ls is done. bye\n");
}
arglist[2]に0が入ってるのがわからん。arglist[0]はプログラム名であり変更できる。
#include <stdio.h>
int main()
{
char *arglist[2];
arglist[0] = "sleeeeeeeeeeeP!";
arglist[1] = "10";
printf("* * * About to exec ls -l\n");
execvp( "sleep" , arglist );
printf("* * * ls is done. bye\n");
}
これを実行してpsで見てみると
$ ps
PID TTY TIME CMD
149 ttys000 0:00.06 -bash
86661 ttys002 0:00.21 -bash
87689 ttys002 0:00.01 sleeeeeeeeeeeP! 10
コマンド名は実行した側が任意につけられるのか。