Hmm... After I moved the #include <signal.h> before any other #include, it worked.
Now I'm getting:
Code:
warning: passing arg 2 of `sigset' from incompatible pointer type
for the following 2 calls to sigset:
Code:
oldchld = (void(*)()) sigset(SIGCHLD, _sci_reaper_);
if (oldchld == SIG_ERR) {
sprintf(prtbuf, "sigset call failed with errno %d", errno);
sci_prt( prtbuf);
oldchld = SIG_DFL;
}
oldterm = (void(*)()) sigset(SIGTERM, _sci_terminate_);
if (oldterm == SIG_ERR) {
sprintf(prtbuf, "sigset call failed with errno %d", errno);
sci_prt( prtbuf);
oldterm = SIG_DFL;
_sci_reaper_ is defined as:
Code:
static void _sci_reaper_();
But sigset() is defined as:
Code:
typedef void (*sighandler_t)(int);
sighandler_t sigset(int sig, sighandler_t disp);
<sigh>
Should I add the int parameter to the _sci_reaper_ functions and just ignore it? What is the int used for?