/* * fork-test.c */ #include #include #include #include #include int global_var = 0; int main(int argc, char *argv[]) { int local_var = 0; int *heap_var, *mmap_shared_var, *mmap_private_var; heap_var = (int *) malloc(sizeof(int)); *heap_var = 0; mmap_private_var = (int *) mmap(NULL, sizeof(int), PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); *mmap_private_var = 0; mmap_shared_var = (int *) mmap(NULL, sizeof(int), PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0); *mmap_shared_var = 0; if(fork()) { global_var = 12; local_var = 24; *heap_var = 36; *mmap_private_var = 48; *mmap_shared_var = 60; wait(NULL); } else { sleep(1); printf("global_var is %d\n", global_var); printf("local_var is %d\n", local_var); printf("heap_var is %d\n", *heap_var); printf("mmap_private_var is %d\n", *mmap_private_var); printf("mmap_shared_var is %d\n", *mmap_shared_var); } }