↓execve関数は実行可能状態のプログラムを実行することができるというのはわかるんですが、excve関数を使うときの第2、第3引数はなにを意味してるのかわかりません。これがなかったら何か困ることあるんですか?

char * argv[] = { "/bin/date", NULL };
char * environment[] ={ "PATH=/bin:/usr/bin", "HOME=/home/shira", NULL };
execve("/bin/date", argv, environment);execve("/bin/date", argv, environment);