title: c++ system() orphan & zombie processes
body: <p>I have a little application, let's call it "launch.exe".  It is a c++ appl.</p>
  
  <p>What I do in it is I call system() 3 times to launch 3 other applications.  let's call these A, B, and C.</p>
  
  <p><strong>problem #1</strong><br>
  A, B, and C are GUI apps and "launch.exe" is not able to progress until A exits.  Then it is stuck again until B exits.  Then stuck again until C exits.  I would like lauch.exe to be able to progress while the applications I have opened remain open.</p>
  
  <p><strong>Problem #2</strong><br>
  Assuming that I am able to figure out a solution to problem #1, after A, B, and C are launched, I don't want "launch.exe" to stay open.  I want launch.exe to close and I want A, B, and C to remain running.</p>
  
  <p>Here is a scenario for you.  Lets us say "launch.exe" only starts one application (let us call it A).  Then, after A is started, if i close "launch.exe", A remains open.</p>
  
  <p>OK...this is what I want but what just happened?  Is A an orphan now? And if so, is this a problem?  </p>
  
  <p>And what if I closed A before I exited launch.exe?  On the surface it seems OK, but what does it return to?  If I launched an exe in cmd shell, it would return to that, but since I did it from a system() call in a c++ appl, does it return to my lauch.exe or does it become a zombie?</p>
  
  <p>NOTES:<br>
  Why am I useing system()?<br>
  --Cause I need something that is Windows/Linux compatible.<br>
  --Cause I need to elevate privileges to admin level for some of the applications being launched.<br>
  --<strong>I should add that it is vital that A, B, and C be totally independent (for security reasons they should not share the same memory space or anything else).</strong><br>
  --Last, some of the apps, B, and C are multi-threaded (I state this because I have read that some functions do not spawn multi-threaded applications properly.  I'm not clear on reasons why.).</p>