Hello,
I'm evaluating boost.process. It seams to me that it is impossible to distinguish a normal exit from a termination by a signal (for instance SIGBUS etc.).
child::exit_code() calls eval_exit_status() that expands on POSIX to:
if (WIFEXITED(code)) {
return  WEXITSTATUS(code);
} else if (WIFSIGNALED(code)) {                                                                                                                                                         
        return WTERMSIG(code);                                                                                                                                
    }
    else
    {                                                                                                                                                         
        return code;                                                                                                                                          
    }