WIFEXITED combined with WIFSIGNALED
WIFSIGNALED / WIFSTOPPED
If you get into the &quot;BAD&quot; case, you may want to check whether WIFSIGNALED is true or WIFSTOPPED is true.  WIFSIGNALED tells you if the program terminated with a signal (such as segv).  WIFSTOPPED tells you if the program is currently stopped (but not terminated).
If your child process can never be stopped, then you can assume that it terminated abnormally and not bother checking those macros.  In your particular example, your child will either segfault or exit right away, so it's unlikely that someone would be able to kill -STOP your process before it crashed.