Node:Signaling Another Process, Next:Permission for kill, Previous:Signaling Yourself, Up:Generating Signals
The kill
function can be used to send a signal to another process.
In spite of its name, it can be used for a lot of things other than
causing a process to terminate. Some examples of situations where you
might want to send signals between processes are:
kill
function is declared in signal.h
.
int kill (pid_t pid, int signum) | Function |
The kill function sends the signal signum to the process
or process group specified by pid. Besides the signals listed in
Standard Signals, signum can also have a value of zero to
check the validity of the pid.
The pid specifies the process or process group to receive the
signal:
kill
(getpid(), signum) . If kill is used by a process to send
a signal to itself, and the signal is not blocked, then kill
delivers at least one signal (which might be some other pending
unblocked signal instead of the signal signum) to that process
before it returns.
The return value from kill is zero if the signal can be sent
successfully. Otherwise, no signal is sent, and a value of -1 is
returned. If pid specifies sending a signal to several processes,
kill succeeds if it can send the signal to at least one of them.
There's no way you can tell which of the processes got the signal
or whether all of them did.
The following errno error conditions are defined for this function:
|
int killpg (int pgid, int signum) | Function |
This is similar to kill , but sends signal signum to the
process group pgid. This function is provided for compatibility
with BSD; using kill to do this is more portable.
|
kill
, the call kill (getpid (),
sig)
has the same effect as raise (sig)
.