Pthrread programming on linux
essome
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
Bilow Messages postés 1014 Date d'inscription Statut Membre Dernière intervention -
Bilow Messages postés 1014 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous!
Voici un problème qui me rend dingue.
Je dois utiliser des threads dans mon programme, mais au premier essai de l'utilisation de thread, un fiasco. ça ne compile même pas.
Voici mon code:
#include <pthread.h>
#include "errors.h"
typedef struct alarm_tag {
int seconds;
char message[64];
} alarm_t;
void *alarm_thread (void *arg)
{
alarm_t *alarm = (alarm_t*)arg;
int status;
status = pthread_detach (pthread_self ());
if (status != 0)
err_abort (status, "Detach thread");
sleep (alarm->seconds);
printf ("(%d) %s\n", alarm->seconds, alarm->message);
free (alarm);
return NULL;
}
int main (int argc, char *argv[])
{
int status;
char line[128];
alarm_t *alarm;
pthread_t thread;
while (1) {
printf ("Alarm> ");
if (fgets (line, sizeof (line), stdin) == NULL) exit (0);
if (strlen (line) <= 1) continue;
alarm = (alarm_t*)malloc (sizeof (alarm_t));
if (alarm == NULL)
errno_abort ("Allocate alarm");
/*
* Parse input line into seconds (%d) and a message
* (%64[^\n]), consisting of up to 64 characters
* separated from the seconds by whitespace.
*/
if (sscanf (line, "%d %64[^\n]",
&alarm->seconds, alarm->message) < 2) {
fprintf (stderr, "Bad command\n");
free (alarm);
} else {
status = pthread_create (
&thread, NULL, alarm_thread, alarm);
if (status != 0)
err_abort (status, "Create alarm thread");
}
}
}
N.B: sur linux, le compilateur gcc
et error.h est un fichier pr la gestion des erreurs
l'erreur est: "undefined reference to 'pthread_detach'
"undefined reference to 'pthread_create'
Take care of You!
Voici un problème qui me rend dingue.
Je dois utiliser des threads dans mon programme, mais au premier essai de l'utilisation de thread, un fiasco. ça ne compile même pas.
Voici mon code:
#include <pthread.h>
#include "errors.h"
typedef struct alarm_tag {
int seconds;
char message[64];
} alarm_t;
void *alarm_thread (void *arg)
{
alarm_t *alarm = (alarm_t*)arg;
int status;
status = pthread_detach (pthread_self ());
if (status != 0)
err_abort (status, "Detach thread");
sleep (alarm->seconds);
printf ("(%d) %s\n", alarm->seconds, alarm->message);
free (alarm);
return NULL;
}
int main (int argc, char *argv[])
{
int status;
char line[128];
alarm_t *alarm;
pthread_t thread;
while (1) {
printf ("Alarm> ");
if (fgets (line, sizeof (line), stdin) == NULL) exit (0);
if (strlen (line) <= 1) continue;
alarm = (alarm_t*)malloc (sizeof (alarm_t));
if (alarm == NULL)
errno_abort ("Allocate alarm");
/*
* Parse input line into seconds (%d) and a message
* (%64[^\n]), consisting of up to 64 characters
* separated from the seconds by whitespace.
*/
if (sscanf (line, "%d %64[^\n]",
&alarm->seconds, alarm->message) < 2) {
fprintf (stderr, "Bad command\n");
free (alarm);
} else {
status = pthread_create (
&thread, NULL, alarm_thread, alarm);
if (status != 0)
err_abort (status, "Create alarm thread");
}
}
}
N.B: sur linux, le compilateur gcc
et error.h est un fichier pr la gestion des erreurs
l'erreur est: "undefined reference to 'pthread_detach'
"undefined reference to 'pthread_create'
Take care of You!
A voir également:
- Pthrread programming on linux
- Linux reader - Télécharger - Stockage
- Toutou linux - Télécharger - Systèmes d'exploitation
- Backtrack linux - Télécharger - Sécurité
- R-linux - Télécharger - Sauvegarde
- Linux mint 22.1 - Accueil - Linux
3 réponses
Bilow
Messages postés
1014
Date d'inscription
Statut
Membre
Dernière intervention
117
Waw! Merci beaucoup !!!
Bonjour,
Ca ne compile ps ou bien c'est l'edition de lien qui pose probleme ;-)
Quelles option passes-tu à gcc? => un oubli de -lpthread peut-etre
A+
Damien
Ca ne compile ps ou bien c'est l'edition de lien qui pose probleme ;-)
Quelles option passes-tu à gcc? => un oubli de -lpthread peut-etre
A+
Damien
je repond pour aider mais il semble que tu sache mieux programer que moi !!
je vais te dire la meme chose que dire mes prof : "lit les insulte du compilateur ! "
visiblement il ne reconnait pas 'pthread_detach' a tu fait tout les include ?
et tu sur de ne pas avoir fait de faute quand tu l' a ecrit ?
c 'est a peu pres tout ce que je peux te dire mais une chose est sure ecoute ce que ma dit mon prof ma (persque ... ) toujour permi de trouver mes erreur !
rucht ( qui ecoute ces profs ... )
je vais te dire la meme chose que dire mes prof : "lit les insulte du compilateur ! "
visiblement il ne reconnait pas 'pthread_detach' a tu fait tout les include ?
et tu sur de ne pas avoir fait de faute quand tu l' a ecrit ?
c 'est a peu pres tout ce que je peux te dire mais une chose est sure ecoute ce que ma dit mon prof ma (persque ... ) toujour permi de trouver mes erreur !
rucht ( qui ecoute ces profs ... )