说,我有一个C ++程序,命名为“A.exe” 如果有人打开它两次, 该程序应该杀死它,然后作为一个单一程序运行。
规则:它应该被该程序杀死(不能使用任何其他程序)。
我的问题是 如果我使用
system("taskkill /im A.exe /t");
但它也会自杀。
答案 0 :(得分:4)
使用命名的互斥锁,这只能由一个线程一次保存,在程序开头创建它,如果你没有获得互斥锁,那是因为你的程序已经运行了另一个副本(并拥有互斥锁),然后您可以安全地终止程序(无需调用任何外部程序,依赖于查找特定文件名等)