Operating Systems, Processes And Threads, Multitasking.
cannot rely on memory variables because they are at distinct locations in memory and guarded by the operating system. This is not exactly apparent in Linux: int a = 3; int process_id = fork(); if (process_id > 0) { // I am a new process a = 5; } else { // I am the current process printf("$d", a); }