Другой запущенный процесс (код которого я не могу получить) отправит моему процессу набор сигналов SIGUSR2 и два сигнала SIGUSR1 в случайном порядке.Цель моей программы - вычислить, сколько раз он принимал сигнал SIGUSR2 между приемом первого и второго сигналов SIGUSR1.
(другой процесс начнет отправку после получения сигнала SIGUSR1 от моего процесса).
Я новичок в обработке сигналов, поэтому, если это как-то связано с зацикливанием, мне становится труднее.Я видел, что работа с сигналами бесконечного цикла является довольно распространенным явлением, но он кусает меня, как правильно его реализовать.
int counter=0;
void count_up(){
counter++;
}
void signal_catcher(){
signal(SIGUSR2,count_up);
// I think here should go some sort of loop that makes it keep catching SIGUSR2
// There should be some flag or somtehing too, so that it stops after receiving
// the second SIGUSR1
}
int main(int argc, char *argv[]){
int pid_sender = atoi(argv[1]);
kill(pid_sender,SIGUSR1); //The other process is notified to start
signal(SIGUSR1,signal_catcher); //The first SIGUSR1 is catched
}