bsdproc(2)
NAME
killpg, getpgrp, setpgrp, sigvec, signal − 4.2 BSD-compatible process control facilities
SYNOPSIS
#include <signal.h>
int killpg(int pgrp, int sig);
int getpgrp(int pid);
int setpgrp(int pid, int pgrp);
int sigvec(
int sig,
struct sigvec *vec,
struct sigvec *ovec
);
void (*signal(int sig, void (*func)(int)))(int);
DESCRIPTION
These calls simulate (and are provided for backward compatibility with) functions of the same name in the 4.2 Berkeley Software Distribution.
This version of setpgrp() is equivalent to the system call setpgid(pid, pgrp) (see setpgid(2)).
This version of getpgrp() is equivalent to the system call getpgrp2(pid) (see getpid(2)).
killpg() is equivalent to the system call kill(−pgrp, sig) (see kill(2)).
sigvec() is equivalent to the system call sigvector(sig, vec, ovec) (see sigvector(2)), except for the following:
When SIGCHLD or SIGCLD is used and vec specifies a catching function, the routine acts as if the SV_BSDSIG flag were included in the sv_flags field of vec.
The name sv_onstack can be used as a synonym for the name of the sv_flags field of vec and ovec.
If vec is not a null pointer and the value of (vec−>sv_flags & 1) is "true", the routine acts as if the SV_ONSTACK flag were set.
If ovec is not a null pointer, the flag word returned in ovec−>sv_flags (and therefore the value of ovec−>sv_onstack) will be equal to 1 if the system was reserving space for processing of that signal because of a call to sigspace(2), and 0 if not. The SV_BSDSIG bit in the value placed in ovec−>sv_flags is always clear.
If the reception of a caught signal occurs during certain system calls, the call will always be restarted, regardless of the return value from a catching function installed with sigvec(). The affected calls are wait(2), semop(2), msgsnd(2), msgrcv(2), and read(2) or write(2) on a slow device (such as a terminal or pipe, but not a file). Other interrupted system calls are not restarted.
This version of signal() has the same effect as sigvec(sig, vec, ovec) , where vec−>sv_handler is equal to func, vec−>sv_mask is equal to 0, and vec−>sv_flags is equal to 0. signal() returns the value that would be stored in ovec−>sv_handler if the equivalent sigvec() call would have succeeded. Otherwise, signal() returns −1 and errno is set to indicate the reason as it would have been set by the equivalent call to sigvec().
These functions can be linked into a program by giving the -lBSD option to ld(1).
WARNINGS
While the 4.3 BSD release defined extensions to some of the interfaces described here, only the 4.2 BSD interfaces are emulated by this package.
bsdproc() should not be used in conjunction with the facilities described under sigset(2V).
AUTHOR
bsdproc() was developed by HP and the University of California, Berkeley.
SEE ALSO
ld(1), kill(2), getpid(2), msgsnd(2), msgrcv(2), read(2), semop(2), setpgid(2), setsid(2), sigvector(2), wait(2), write(2), sigset(2V), sigstack(2), signal(5).
Hewlett-Packard Company — HP-UX Release 9.0: August 1992