title: how many ways we can create a process in linux using c
body: <p>I have confusion in creating a process in Linux. Up to now I thought that we can create the process by calling the following system calls.</p>
  
  <ol>
  <li><code>system()</code></li>
  <li><code>exec()</code> family of system call</li>
  <li><code>fork()</code> system call</li>
  </ol>
  
  <p>but:</p>
  
  <ol>
  <li><p><strong>system():</strong> But as "system" system call executing the input executable on shell and shell is creating a child process for the execution of input .here shell is calling child process then we can say that fork is creating process for this.</p></li>
  <li><p><strong>exec family of system call:</strong> As this family of system call over write the current running process with new process.So it is also creating a new process but using same address space. As I think it is also calling call fork for creating the process. </p></li>
  </ol>
  
  <p>I am confused with the fact all the above is possible way of creating a new process or only fork system.</p>