在qt程序中捕捉linux信号,sigint sighup sigterm
【blog.csdn.net/lanmanck】
有时候退出QT程序时希望按既定的步骤来清除内存、关闭线程等,然后CTRL+C后发现QT挺难捕捉的,直接用signalhandler()则会导致free() 空指针的错误,那么,怎么才能有效的捕捉退出信号,例如SIGINT呢?
莫急,官方有说法:
http://doc.qt.digia.com/4.7/unix-signals.html
然而,如果你不是资深的C++程序员,编译的时候你会发现 undefined reference to 'xxx' 类似的错误。
其实,你在main函数中构造该mydaemon类就好了。
另一个比较详细的说法如下,骚年们认真看编译吧,好使得很:
http://qt-project.org/forums/viewthread/1227/
重点在于:
int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); qDebug() << "Qt and unix signals"; setup_unix_signal_handlers(); MyDaemon daemon(NULL,NULL); return app.exec(); }