Lorsque j'utilise my_handler comme fonction, il n'y a pas d'erreur mais je ne peux pas parce que je dois utiliser une autre méthode.Erreur de gestion des signaux
Si je construis le code ci-dessous: erreur: utilisation non valide de membre functi sur (avez-vous oublié le '()'?)
Ceci est mon premier programme en C++
void Client::my_handler(int s){
if (s == SIGINT){
printf("SIGINT\n");
// here I have to use stop_thread method
}
}
int main (int argc, const char **argv) {
Client client(argc, argv);
client.before_start();
struct sigaction sigIntHandler;
sigIntHandler.sa_handler = (__sighandler_t) client.my_handler; //error here
sigemptyset(&sigIntHandler.sa_mask);
sigIntHandler.sa_flags = 0;
sigaction(SIGINT, &sigIntHandler, NULL);
client.run();
return 0;
}
Faites également attention à ce que vous essayez de faire dans un gestionnaire de signal. Les options sont assez limitées. J'ai peur de ne pas regarder à la main ce que vous pouvez utiliser en toute sécurité. – user4581301