#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include "../lpi.h"     // struct sig is defined here
                        // and implemented in ../defs.c
                        // compile command:
                        // gcc signos.c ../defs.c

int comp_func(const void *num1, const void *num2);

extern struct sig sigs[];
extern int NSIGS;

int
main(int argc, char *argv[])
{
    qsort(sigs, NSIGS, sizeof(struct sig), comp_func);
    for (int i = 0; i < NSIGS; i++)
        printf("%-10s %2d\n", sigs[i].name, sigs[i].no);

    exit(EXIT_SUCCESS);
}

int
comp_func(const void *sig1, const void *sig2)
{
    struct sig *a, *b;

    a = (struct sig *) sig1;
    b = (struct sig *) sig2;

    return a->no > b->no ? 1 : a->no == b->no ? 0 : -1;
}
