workable implementation of execvp with forking and child process management