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