意外停机后的控制
control after unexpected shutdown
我正在编写一个程序,该程序向服务器发送命令,并在服务器上创建一个文件,以让它知道它已连接,例如,当程序运行时,它会在每次循环时创建一个文件说"here", php站点然后检查该文件的服务器,如果文件在那里,它知道程序已连接。然而,当它突然停止说,因为计算机关机,它可能发生关机时,文件已经创建,所以说它关闭现在在5分钟,如果服务器检查文件将在那里,有没有办法让程序删除意外关机的文件?
谢谢,
为了达到这个目的,您最好创建其他东西而不是文件。由于文件通常被用作更永久的存储解决方案,因此这不是您想要的。
我建议使用互斥锁或其他命名的、操作系统实现的、跨进程令牌或同步原语。从那时起,如果你的程序结束(正常或异常),操作系统将为你清理令牌,所以你不需要担心手动清理。
在Windows上,你可以使用像命名互斥锁这样的东西,不确定你会在Linux或其他unix上使用什么,但肯定会有这样的东西。
如果创建进程为Windows,则是。创建标记为FILE_FLAG_DELETE_ON_CLOSE
的文件。这将在文件句柄关闭时自动删除该文件。当应用程序以任何方式终止时,句柄也会关闭。
我不确定这种文件机制是最明智的解决方案。对于客户端程序来说,每10秒从PHP站点获取一个简单的网页可能要容易得多。
相关文章:
- 在C++中对T*类型执行std::move的意外行为
- 控制允许动态运行c++的并发操作数
- 从控制台中删除最后打印的元素
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- 是否可以使用if constexpr删除控制流语句
- 处理除以零会导致<csignal>意外行为
- 无法在windows控制台中为C++程序提供必要的输入
- vscode下的Arduino代码出现意外编译错误
- 使用++运算符会导致意外的结果
- 套接字读取后,我在缓冲区中看到意外输入
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 使用vscode调试时,GDB意外退出
- 控制到达非空函数clang(-Wreturn-type)的末尾
- 此测试()中发生了什么意外过程?为什么总是覆盖 ch[0 1 2..]?
- 尝试将字符串/字符转换为整数会产生意外结果
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- C++标头错误 C2238 意外标记";"
- C++中意外的多头值
- 使用 if-else 控制结构的意外输出
- 意外停机后的控制