title: What is the meaning of values from Java Process.exitValue()?
body: <p>I am using <code>Process</code> via <code>ProcessBuilder</code> to run an executable made in C code.  I am catching the <code>Process.exitValue()</code> to react on this exit values.  I noticed not all the exit values are from the executable.  For example, I get an exit value of 139 and nowhere in my C code I am returning an exit value of 139.</p>
  
  <p>I am trying to find an overview of exit values, but I cannot find this, and now I found out the exit value can be OS dependent. (I am using Ubuntu by the way).</p>
  
  <p>It seems the only exit value to be sure of is 0 when everything goes right.
  Are there specifications about exit values? Can I be sure that a certain range can be used only for my own program? What exit codes are reserved for the OS.</p>
  
  <p>I found out that 139 is probably a memory error in the C code.  I want to get rid of the probably.  I can't get any overview of exit values (e.g. 139 = .....)</p>
  
  <p>This is the simplified code by the way:</p>
  
  <pre><code>ProcessBuilder p = new ProcessBuilder(executableName,
     executableArguments);
  final Process shell = p.start();
  InputStream shellIn = shell.getInputStream();
  int shellExitStatus = shell.exitValue();
  </code></pre>
  
  <p>Note: Running the C executable in the Ubuntu shell gives no error at all (i.e. exit value 0).  But, doing the same command in Java gives exit value 139.</p>