Example (_cwait -- Wait for Child Process)

This example creates a new process called child.exe. The parent calls _cwait and waits for the child to end. The parent then displays the child's return information in hexadecimal.

#include <stdio.h>
#include <process.h>
#include <errno.h>
int stat_child;
int main(void)
{
   int i,result;
   /* spawn a child and 'cwait' for it to finish */
   if ((result = _spawnl(P_NOWAIT, "child", "child", "1", NULL)) != -1) {
      if ((i = _cwait(&stat_child, result, WAIT_CHILD)) != result)
         printf("Error ...expected pid from child");
      else {
         if (0 == errno) {
            printf("Child process ended successfully and ...\n");
            printf("program returned to the Parent process.\n");
         }
         else
            printf("Child process had an error\n");
      }
   }
   else
      printf("Error ...could not spawn a child process\n");
   return 0;
   /*****************************************************************
      If the source code for child.exe is:
      #include <stdio.h>
      int main(void) {
         puts("This line was written by child.exe");
         return 0;
      }
      The output should be similar to :
      This line was written by child.exe
      Child process ended successfully and ...
      program returned to the Parent process.
   ******************************************************************/
}