Differences between exit and kill in C++

In this discussion, we will be discussing the difference between kill and exit in C++. Firstly, let’s talk about what kill and exit are and what functions they perform.

exit function in C++ :

First, let’s go through the exit() function.

The exit() method in C++ causes the program to terminate as soon as it is encountered, regardless of where it occurs in the program code. This is a built-in method that is defined in the stdlib.h header file. To use the exit() method, firstly we should include this library in the program.

The exit() method never returns a value. It ends the process and conducts the standard cleaning for program termination. In addition, executing this method in C++ does not remove automated storage objects it just terminates the calling process and closes all the files.

The exit() function exits the application with an error code. The error code has two possible values: zero and non-zero. Each value has its own significance. A value of zero indicates normal termination, whereas a value other than zero indicates abnormal termination. Data overflow, size exceedance, unfinished file operations, and so on are examples of anomalous termination.

Syntax :


Also check: Difference between exit() and _Exit() in C++

kill function in C++ :

Now, let’s discuss the kill() function in C++. This method will send a signal to a process or a group of processes specified by pid. Generally, we pass two parameters in the kill() method: one is pid, and the other is signal (sig). sig specifies the signal to be sent, which can be one of the signals listed in<signal.h> or zero(0). If the sig is zero, error checking is performed but no signal is actually sent.

We can use the null signal to validate the pid’s authenticity. A process will not be able to send a signal to pid significant process if it is not having any appropriate rights or privileges. The kill() method is successful only when the process has permission to send a signal to any of the processes indicated by the pid otherwise the kill() function fails, no signal is sent.

The signals are sent to different destination processes based on the pid value, such as if the pid is greater than zero, the signal is sent to that specified pid process; similarly, if the pid is equal to zero, the signal is sent to processes in the same process group as the sender; and so on.

The return value of the kill() function in C++ is of the integer type. The return value may be or -1. If the return value is zero, the sig was successfully sent to the pidotherwise, the errno variable is set to indicate the problem if the sig was not properly delivered.

Syntax :

#include <signal.h>
int kill(pid_t pid, int sig);

I hope you understand the exit() and kill() functions. We can easily distinguish between these two functions in C++ programming based on the concepts we have learned so far.

Differences: Exit vs Kill in C++

  • The exit() function is defined in the C++ standard library stdlib.h, whereas the kill function is not included in the standard library but is defined in POSIX.
  • To kill is to forcibly stop process, whereas to exit signifies decision by the process to stop running. Since the kill method causes the operating system to stop the process, it does not perform any sort of clean-up operations, whereas the exit() function cleans up and closes all files while terminating the process.
  • The built-in function exit() accepts single integer-type parameter as an argument whose value represents the error code.This error code is passed to OS on successful termination of the program In contrast, the kill function will accept two parameters: pid and signal.
  • The return type of the exit() method is void, whereas the return type of the kill() function is int.

These are some of the differences between the kill and exit functions in C++.
Also read: return vs exit() in main() in C++ with examples

Leave a Reply

Your email address will not be published. Required fields are marked *