Мне нужно написать программу, которая генерирует дочерний процесс, а затем завершает родительский процесс, и после этого этот созданный дочерний процесс должен попросить пользователя ввести новый рабочий каталог, изменить его и распечатать путь к его новому рабочему каталогу.Я написал это, но scanf не работает («Он не просит пользователя что-то вводить, программа просто завершается) и путь не меняется ... Я пытался установить новый каталог на char *newdirectory="home/usr/desktop"
, и это не изменилось»рабочий каталог тоже
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <sys/stat.h>
int main()
{
int pid;
char directory[1024];
char newdirectory[1024];
pid=fork();
if(pid<0)
{
printf("\n Error ");
exit(1);
}
else if(pid==0)
{
printf("I'm child \n ");
printf(" My PID: %d \n",getpid());
getcwd(directory, sizeof(directory));
printf(" My current working directory is: %s\n", directory);
printf(" Enter the new path\n");
scanf("%s", &newdirectory);
chdir(newdirectory);
getcwd(directory, sizeof(directory));
printf(" Path changed to: %s\n", directory);
exit(0);
}
else
{
printf("I'm a parent \n ");
printf("My PID is %d \n ",getpid());
printf("Bye bye \n");
exit(1);
}
return 0;
}
Спасибо за ваше время, усилия и всю помощь, чтобы понять:)