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);
}
Üst süreç alt süreç beklemez ve bu yine bana çıktı "cccccc" verir neden beni açıklayabilir? Çocuk işleminde "dddddd" olarak değiştirildiÜst süreç çocuk süreç (c kodu) beklemez
Bekleme (NULL) bile ne yapar?
Çocuk sürecini beklemesi gerektiğini nasıl bilmesi gerekiyor?
Çocuk, ebeveynin adres alanının bir kopyasını alır. Dizi [] 'deki değişiklikler sadece çocuğun kopyasına yapılır, ebeveynin kopyası değiştirilmeden kalır. İşletim sisteminize bağlı olarak, değişikliklerin her iki işlemde de görülebileceği özel "paylaşılan" bellek elde edebilirsiniz. – EOF