chdir()を使用して現在の作業ディレクトリを変更すると、getenv( "PWD")が現在の作業ディレクトリを提供しないのはなぜですか?setenv( "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));
}
}
出力:(実行可能ファイルの場所は/home/ userです)
変更された/boot
ディレクトリが変更されました。現在の作業ディレクトリは「/home/user」「/boot」です。