return
from main()
is equivalent to exit
the program terminates immediately execution with exit status set as the value passed to return
or exit
return
in an inner function (not main
) will terminate immediately the execution of the specific function returning the given result to the calling function.
exit
from anywhere on your code will terminate program execution immediately.
status 0 means the program succeeded.
status different from 0 means the program exited due to error or anomaly.
If you exit with a status different from 0 you're supposed to print an error message to stderr
so instead of using printf
better something like
if(errorOccurred) {
fprintf(stderr, "meaningful message here\n");
return -1;
}
note that (depending on the OS you're on) there are some conventions about return codes.
Google for "exit status codes" or similar and you'll find plenty of information on SO and elsewhere.
Worth mentioning that the OS itself may terminate your program with specific exit status codes if you attempt to do some invalid operations like reading memory you have no access to.
To indicate execution status.
status 0 means the program succeeded.
status different from 0 means the program exited due to error or anomaly.
return n; from your main entry function will terminate your process and report to the parent process (the one that executed your process) the result of your process. 0 means SUCCESS. Other codes usually indicates a failure and its meaning.
return n
from your main entry function will terminate your process and report to the parent process (the one that executed your process) the result of your process. 0 means SUCCESS. Other codes usually indicates a failure and its meaning.
As explained here, in the context of main
both return
and exit
do the same thing
Q: Why do we need to return
or exit
?
A: To indicate execution status.
In your example even if you didnt have return or exit statements the code would run fine (Assuming everything else is syntactically,etc-ally correct. Also, if (and it should be) main
returns int
you need that return 0
at the end).
But, after execution you don't have a way to find out if your code worked as expected.
You can use the return code of the program (In *nix environments , using $?
) which gives you the code (as set by exit
or return
) . Since you set these codes yourself you understand at which point the code reached before terminating.
You can write return 123
where 123
indicates success in the post execution checks.
Usually, in *nix environments 0
is taken as success and non-zero codes as failures.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With