Trong con nĩa, nếu chúng ta sửa đổi một biến toàn cục, nó sẽ không bị thay đổi trong chương trình chính.Làm thế nào để chia sẻ bộ nhớ giữa quá trình fork()?
Có cách nào để thay đổi biến toàn cục trong ngã ba trẻ em không?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int glob_var;
main (int ac, char **av)
{
int pid;
glob_var = 1;
if ((pid = fork()) == 0) {
/* child */
glob_var = 5;
}
else {
/* Error */
perror ("fork");
exit (1);
}
int status;
while (wait(&status) != pid) {
}
printf("%d\n",glob_var); // this will display 1 and not 5.
}
bản sao có thể có của [Cách sử dụng bộ nhớ dùng chung với Linux trong C] (http://stackoverflow.com/questions/5656530/how-to-use-shared-memory-with-linux-in-c) – alk