在C中,如果我的应用程序意外结束,我可以在此之前调用函数吗?我正在向数据库(processRunning = 1)写入一个标志,以阻止其他应用程序启动类似的进程.当应用程序结束时,它不会改变该标志.
在POSIX上,正确的解决方案是使用共享内存中的强大互斥锁来保护数据.如果你的进程因强大的互斥锁而死亡,另一个试图锁定互斥锁的程序将不会死锁,而是会返回EOWNERDEAD,然后它有机会清理受互斥锁和调用保护的状态pthread_mutex_consistent.
编辑:如果你只想阻止程序的多个实例运行,肯定有更好/更简单的方法,比如对数据库文件进行锁定.