chdir () que não afeta a variável de ambiente PWD

Quando uso chdir () para alterar o diretório de trabalho atual, por que o getenv ("PWD") não fornece o diretório de trabalho atual? Preciso configurar também ("PWD", newDir, 1)?

void intChangeDir(char *newDir)
{
    if( chdir(newDir)==0 )              
    {
        printf("Directory changed. The present working directory is \"%s\" \"%s\"\n",getenv("PWD"),getcwd(NULL,0));
    }
    else
    {
        printf("Error changing dir %s\n",strerror(errno));      
    }
}

Saída: (o local do executável é / home / user)

alterado / inicialização

Diretório alterado. O diretório de trabalho atual é "/ home / user" "/ boot"

questionAnswers(1)

yourAnswerToTheQuestion