ciao a tutti c'è un modo piu elegante di scrivere lo stesso codice, che rileva continuamente la pressione di ctrl + c ma senza il pezzo finale col while, che mi sono inventato come stratagemma per non fare morire il processo?

codice:
#include <stdio.h>
#include <stdlib.h> 
#include <signal.h>

void invio_saluto(int sig);

main(int argc, char *argv[]){

signal(SIGINT, invio_saluto);  

while(1){
    sleep(8);
  }

}

void invio_saluto(int sig){
printf("ciao!\n");
signal(SIGINT, invio_saluto); 
}