When I use chdir() to change the current working directory, why doesn't the getenv("PWD") give the present working directory? Do I need to setenv("PWD",newDir,1) also?
void intChangeDir(char *newDir)
{
if( chdir(newDir)==0 )
{
printf("Directory changed. The present working directory is "%s" "%s"
",getenv("PWD"),getcwd(NULL,0));
}
else
{
printf("Error changing dir %s
",strerror(errno));
}
}
Output: (location of the executable is /home/user)
changedir /boot
Directory changed. The present working directory is "/home/user" "/boot"
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…