Я пытаюсь выполнить обработку прерываний с помощью функции-члена из класса.Обработка прерываний с нестатической функцией-членом
Код
signal(SIGABRT, socketServer.signalHandler);
где определение signalHandler
является
public:
void SocketServer::signalHandler(int sig) {
logger.info("Receive SIG"+to_string(sig)+" Stopping server now...");
stop();
}
Когда я компиляции кода, я получил сообщение об ошибке говорит
main.cpp:32:32: error: reference to non-static member function must be called
signal(SIGABRT, socketServer.signalHandler);
Я пытаюсь захватить SIGABRT
, используя эту функцию signalHandler
и очистить и остановить socketServer
экземпляр. Думаю, я могу использовать глобальную переменную и глобальную функцию для выполнения этой работы, но любые мысли об этом с помощью функции-члена?
Связанные вопрос: https://stackoverflow.com/q/343219/1340631 – scai