我正在开发一个程序,它向服务器发送一个命令并在服务器上创建一个文件,让它知道它的连接,例如,当程序运行时,它会在每次循环时创建一个文件说“here”,然后一个php站点检查服务器是否有该文件,如果文件在那里它知道程序已连接。然而,当它突然停止说因为计算机关闭时,它可能会在文件创建时关闭,所以说它现在在5分钟内关闭,如果服务器检查文件将在那里,有没有办法删除程序意外关机的文件?这是在C ++上。
感谢,
答案 0 :(得分:2)
为了这个目的,你可能最好不要创建一个文件以外的东西。由于文件通常用作更永久的存储解决方案,因此它不是您想要的。
我建议的是类似互斥体或其他类型的命名,操作系统实现,跨进程令牌或同步原语。从那时起,如果您的程序结束(正常或异常)操作系统将为您清理令牌,因此您不必担心手动清理。
在Windows上,您可以使用类似命名的互斥锁,不完全确定您在Linux或其他Unix上使用的内容,但最明确的是这样的内容。
答案 1 :(得分:0)
如果创建过程是Windows,是的。使用标记FILE_FLAG_DELETE_ON_CLOSE
创建文件。这将在句柄关闭时自动删除文件。当您的应用程序以任何方式终止时,句柄也会关闭。
但我不确定这个文件机制是否是最安全的解决方案。您的客户端程序每10秒钟从PHP站点获取一个简单的Web页面可能要容易得多。