Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8102117
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 5, 20262026-06-05T23:09:44+00:00 2026-06-05T23:09:44+00:00

I am using Process via ProcessBuilder to run an executable made in C code.

  • 0

I am using Process via ProcessBuilder to run an executable made in C code. I am catching the Process.exitValue() 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.

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).

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.

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 = …..)

This is the simplified code by the way:

ProcessBuilder p = new ProcessBuilder(executableName,
   executableArguments);
final Process shell = p.start();
InputStream shellIn = shell.getInputStream();
int shellExitStatus = shell.exitValue();

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.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-05T23:09:46+00:00Added an answer on June 5, 2026 at 11:09 pm

    If the system kills your application (like in the case of Segmentation fault) it sets the exit code to 128 + SIGNAL – see linux signal(7) manpage for signal values.

    Also, for linux, there are several default exit codes defined in sysexits.h header file, and it is recommended that programmers use those constants instead of manually defining own values. From exit(3) manpage:

    BSD has attempted to standardize exit codes; see the file <sysexits.h>.

    You can find the file for example here, and the values included are:

    #define EX_OK           0  /* successful termination */
    
    #define EX__BASE        64  /* base value for error messages */
    
    #define EX_USAGE        64  /* command line usage error */
    #define EX_DATAERR      65  /* data format error */
    #define EX_NOINPUT      66  /* cannot open input */
    #define EX_NOUSER       67  /* addressee unknown */
    #define EX_NOHOST       68  /* host name unknown */
    #define EX_UNAVAILABLE  69  /* service unavailable */
    #define EX_SOFTWARE     70  /* internal software error */
    #define EX_OSERR        71  /* system error (e.g., can't fork) */
    #define EX_OSFILE       72  /* critical OS file missing */
    #define EX_CANTCREAT    73  /* can't create (user) output file */
    #define EX_IOERR        74  /* input/output error */
    #define EX_TEMPFAIL     75  /* temp failure; user is invited to retry */
    #define EX_PROTOCOL     76  /* remote error in protocol */
    #define EX_NOPERM       77  /* permission denied */
    #define EX_CONFIG       78  /* configuration error */
    
    #define EX__MAX         78  /* maximum listed value */
    

    However, using them is not mandatory, and you are free to use any value you want.

    The general answer is – if your application fails gracefully (i.e. it is able to handle the error an finish execution), then it sets the exit code by itself. If the application is killed by the system, it’s the system who sets the exit code.

    You can also see this thread for some additional information.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm trying to start an external process via Java using the ProcessBuilder class, and
I created an executable jar and executed it using process builder from another java
I have a C# application which launches another executable using Process.Start() . 99% of
Any ideas why the following code does not exit the Outlook 2007 process created
I'm trying to run an external problem from C# by using Process.Start, but am
I would like to get process id and process name via using window title
I want to call a process via a python program, however, this process need
I'm writing some server code that talks to a client process via STDIN. I'm
In my code below, I am using Process objects to execute a series of
I start the NServisBus.host.exe file from my wpf application using the following code: System.Diagnostics.Process.Start(NServiceBus.Host.exe);

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.