HPlogo HP-UX Reference Volume 4 of 5 > b

bsdproc(3C)

» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Index

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().

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(3C).

APPLICATION USAGE

Threads Considerations

The signal disposition (such as catch/ignore/default) established by sigvec() and signal() is shared by all threads in the process.

For more information regarding signals and threads, refer to signal(5).

AUTHOR

bsdproc() was developed by HP and the University of California, Berkeley.

© Hewlett-Packard Development Company, L.P.