我用 C++ 编写了一个 Linux 守护进程。代码是这样的:
int main(int argc, char** argv)
{
daemon(1, 0); // Daemonize itself, retaining the current working directory and redirecting stdin, stdout and stderr to /dev/null.
// My program logic goes here
}
问题是,我的程序逻辑偶尔会抛出异常。如何捕获异常以便知道哪里出错了?
我知道对于一个普通的控制台应用程序,未捕获的异常将被转储到控制台。在我的情况下,调用 daemon(1, 0) 后,控制台不再可访问。
在 Windows 上,任何未捕获的异常都将由操作系统保存,并且可以通过计算机管理中的事件查看器查看。Linux上有类似的机制吗?