如果我的程序没有正确拆卸,系统会变得不稳定。真的没有解决方法。因此,如果我的程序崩溃并且没有正确拆除,那么我需要告诉用户他何时再次尝试运行系统处于不稳定状态。这样做的正确方法是在我启动时创建一个锁定文件,并在我正确退出时删除它。如果我开始并且该文件存在,那么我知道我之前崩溃了。这是正确的做法吗?
答案 0 :(得分:5)
两件可能有用的事情:
答案 1 :(得分:1)
如果您的程序崩溃并且机器重新启动,那么事情是否还会处于不稳定状态?如果没有,则锁定文件不是您希望采用的方法,因为重新启动后文件仍然存在。使用global atom table尝试解决方案。
// Test if the application has crashed since the last reboot
ATOM myAtom = GlobalFindAtom ("MySecretName");
if (myAtom != 0)
{
// We crashed on last run, inform user and exit
// ...
exit (0);
}
// Create a global atom which will be destroyed only on clean termination
myAtom = GlobalAddAtom ("MySecretName");
// Run your main program here
// ...
// Clean termination, delete the atom
GlobalDeleteAtom (myAtom);
答案 2 :(得分:0)
只是考虑到这一点,但是在与您的应用无关的情况下,锁定文件可能不会被删除,例如。网络错误,文件系统错误,o.s error。
因此,根据您的要求,如果确定当前状态是否有效绝对至关重要,您可能需要通过检查所有因变量和状态来确定有效性,而不是仅仅依赖于锁定文件。否则,它可以是一种监控退出状态的简便方法。只是不要依赖它来确定你是否应该重新发射导弹。
答案 3 :(得分:0)
Microsoft Word(PPT / Excel也)遵循类似的方法。在写入模式下打开文档时会创建一个隐藏文件,一旦应用程序正常退出,它就会被删除。该文件可能有更多信息,如每隔'x'分钟等自动保存文档,但关键是您的观点是有效的: - )