子を使用してシェルのディレクトリを変更するコマンドシェルを作成していますが、配列の内容を変更するために子を取得できません。
最終的には、「/」の代わりに現在のディレクトリを出力するだけです。子はnewDirectory配列に影響を与えません。私は何が間違っているのですか?子に配列の内容を変更させる方法はありますか?ありがとう。
char newDirectory[255];
getcwd(newDirectory, 255); //set newDirectory to current directory
pid_t pid;
pid = fork();
if(pid == 0){ //child execution
strcpy(newDirectory, "/");
exit(0);
}
else if (pid < 0){
printf( "Error!\n");
exit(1);
}
else{
pid = waitpid(pid, NULL, 0);
}
printf("%s\n", newDirectory);
chdir(newDirectory);