sigblock,sigmask,sigsetmask ... for SYS V?
    Scott R. Presnell%Cohen 
    srp at babar.mmwb.ucsf.edu
       
    Sun Jun 23 05:56:25 AEST 1991
    
    
  
hpn at regentdb.osrhe.uoknor.edu (Huy Nguyen / (405) 721-3798) writes:
>Does anyone know of a library package, hacks, etc to emulate these BSD
>signal routines for SYS V?  
>Huy Nguyen
>hpn at regentdb.osrhe.uoknor.edu
I've used the following in the past as a quick hack (NSIG can usually be
found in /usr/include/sys/signals.h):
/* Mask of held signals */
static int sigheld = 0;
int sigblock (sigs)
int sigs;
{
  int i,old;
  for (i = 0; i < NSIG; i++)
    if (sigs & sigbit (i))
  sighold (i);
  old = sigheld;
  sigheld |= sigs;
  return(old);
}
sigsetmask(sigset)
int sigset;
{
  int newheld,newrel,tmp;
  newheld = sigset & ~sigheld;
  newrel = sigheld & ~sigset;
  tmp = sigblock(newheld);
  sigfree(newrel);
}
sigfree (sigs) 
int sigs;
{
  int i;
  for (i = 0; i < NSIG; i++)
    if (sigs & sigbit (i))
      sigrelse (i);
  sigheld &= ~sigs;
}
sigbit (i)
int i;
{
  return 1 << (i - 1);
}
	Hope this helps.
	- Scott Presnell (srp at cgl.ucsf.edu)
--
Scott Presnell				        +1 (415) 476-9890
Pharm. Chem., S-926				Internet: srp at cgl.ucsf.edu
University of California			UUCP: ...ucbvax!ucsfcgl!srp
San Francisco, CA. 94143-0446			Bitnet: srp at ucsfcgl.bitnet
    
    
More information about the Comp.unix.internals
mailing list