i am new to \"fork()\",I read everywhere that when a fork() is called an exact copy of current (calling) process is started.Now when I run following code ,there should be tw
having two different memory locations assigned to their vars and functions.
Nope; Linux implements virtual memory, meaning that each process has its own complete address space. As a result, after a fork
, both processes see the same addresses for their copies of in-memory objects.
(As an aside: VM also causes code to be shared between the process in physical memory, and all data will only be copied-on-write.)