October 2017
Intermediate to advanced
354 pages
9h 28m
English
kill() and sigqueue() are POSIX APIs through which a process can raise a signal for another process or process group. These APIs facilitate utilization of signals as process-communication mechanisms:
int kill(pid_t pid, int sig); int sigqueue(pid_t pid, int sig, const union sigval value); union sigval { int sival_int; void *sival_ptr; };
While both APIs provide arguments to specify the receiver PID and signum to be raised, sigqueue() provides an additional argument (union signal) through which data can be sent to the receiver process along with the signal. The destination process can access the data through struct siginfo_t (si_value) instances. Linux extends these functions with native APIs that can queue ...