When execvp() is executed, the program file given by the first argument will be loaded into the caller's address space and over-write the program there. Then, the second argument will be provided to the program and starts the execution. As a result, once the specified program file starts its execution, the original program in the caller's address space is gone and is replaced by the new program.
execvp(argv[0],argv);
1번째 argu는 실행할 파일이 위치한 곳 ( ls라는 명령어(파일)이 위치한 곳) 의 PATH
2번째 argu는 어떤 명령을 수행할지 (ls -al)을 실행하겠다.