함수로 my_handler를 사용할 때 오류가 없지만 다른 메서드를 사용해야하기 때문에 오류가 없습니다.신호 처리 오류
나는 빌드하는 경우 아래 코드 : 오류 : 회원의 잘못된 사용에 방지 동작 (잊지 않았다을 '()'?)
이 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