On Sat, Jul 18, 2020 at 09:31:46PM -0000, Dimitri Karamazov wrote:

> On Sat, July 18, 2020 18:52, Otto Moerbeek wrote:
> >
> > this is an old System V idiom. See e.g. 
> > https://man7.org/linux/man-pages/man3/sigset.3.html
> >
> > -Otto
> >
> >
> This compiled fine, but fine is it?
> 
> #include <signal.h>
> 
> static void increase_verbosity(int signum)
> {
>   verbosity++;
>   cerr << "Increased verbosity to " << verbosity << endl;
> }
> 
> static void decrease_verbosity(int signum)
> {
>   verbosity--;
>   cerr << "Decreased verbosity to " << verbosity << endl;
> }
> 
> struct sigaction inc_action {
>       .sa_handler = increase_verbosity,
>       .sa_flags = 0
> };
> struct sigaction dec_action {
>       .sa_handler = decrease_verbosity,
>       .sa_flags = 0
> };
> 
> 
> void install_verbosity_control_signal_handlers()
> {
>   sigaction(SIGUSR1, &inc_action, NULL);
>   sigaction(SIGUSR2, &dec_action, NULL);
> }
> 
> 

I'd just use signal(3).

        -Otto

Reply via email to