I understand that i am supposed to use chdir() but I just need an explanation as to why calling cd shell command through system or execvp() from a child process would not work? Thanks!!
chdir only modifies the environment of the current process. It can't touch the environment of the parent.
See also the link posted by tripleee.