char array[ARRAY_SIZE];
void child_process_routine(){
int j;
for(j = 0;j<ARRAY_SIZE;j++)
array[j]='d';
}
main()
{
pid_t child_pid;
int i;
for(i = 0;i<ARRAY_SIZE;i++)
array[i]='c';
child_pid = fork();
switch (child_pid) {
case -1:
perror("error");
exit(1);
case 0:
child_process_routine();
exit(0);
default:
wait(NULL);
}
print_array(array);
}
вы можете объяснить мне, почему родительский процесс не ждет дочернего процесса и это дает мне выход «CCCCCC» снова? он был изменен в дочернем процессе на «dddddd»родительский процесс не ждет для дочернего процесса (с кодом)
что ждать (NULL) даже сделать?
Как он должен знать, что он должен ждать процесса ребенка?
Ребенок получает копию адресного пространства родителя. Изменения в 'array []' делаются только с копией ребенка, копия родителя остается неизменной. В зависимости от вашей операционной системы вы можете получить специальную «общую» память, где изменения видны для обоих процессов. – EOF