execv

execvも、execlと同様に、指定の実行ファイルを実行して、そのプロセスに置き換わる。
違いは、第2引数以降を配列で渡せるぐらい。

Man page of EXEC

execv_main.cを、

として、
execv_sub.cを、

とする。

$ vi execv_main.c
$ vi execv_sub.c
$ gcc execv_main.c -o execv_main
$ gcc execv_sub.c -o execv_sub
$ ./execv_main
argv[0] = ./execv_sub
argv[1] = 123
argv[2] = abc
argv[3] = xyz
$

./execv_mainで実行すると、./execv_subに配列で指定した引数が渡される。

Sample/unixsyscall/execv/execv/src/execv at master · bg1bgst333/Sample · GitHub