Alors si j'ai bien compris, ton programme se lance, il fait un truc toutes les secondes dans une boucle, et en même temps il doit faire un autre truc c'est bien ça ?
Dans ce cas, oui un thread est une possibilité très simple à mettre en place. Tu utilises à priori pthread.h donc il te suffit de:
- déclarer ton thread
pthread_t [le nom du thread qui va lancer la boucle while];
- créer le thread sur ta fonction qui boucle
pthread_create(&nom_du_thread, NULL, (void *)fonction_while,NULL);
(le protype est : int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg); )
- continuer la suite de ton programme
- tu peux à la fin pour fermer proprement ajouter un pthread_join(nom_du_thread); qui fera que ton programme principal attendra la fin du thread pour se terminer effectivement. Tu auras pris soin avant d'indiquer à ton thread de se terminer, par exemple avec une variable globale que tu passes à 1, provoquant un pthread_exit de la part du thread while.