Я пытаюсь выполнить обработку прерывания с помощью функции-члена из класса.
Код
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
. Я думаю, что могу использовать глобальную переменную и глобальную функцию для выполнения этой работы, но есть мысли о том, чтобы сделать это с помощью функции-члена?