関数としてmy_handlerを使用すると、エラーはありませんが、別のメソッドを使用する必要があるため、できません。シグナル処理エラー
私は以下のコードビルドする場合: エラー:(?あなたは忘れた 'を()')のメンバーfuncti の不正な使用を
これは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;
}
また、信号ハンドラで何をしようとしているかに注意してください。オプションは非常に限られています。私はあなたが安全に使うことができるものを手にしているのではないかと心配しています。 – user4581301