关于程序控制,求各位知道的解答一下,谢谢。

holy_pigh 2013-08-14 01:57:03
linux下面的话,我可以用signal之类的控制,比如我kill掉我的程序,程序自身能捕捉SIGTERM信号,我能进行相应的处理,比如还原之前修改的东西。
但对于windows下面,我知道也有signal和几个简单的信号,但是我试了,taskkill的话(貌似windows没有kill把?),SIGTERM信号捕捉不到(SIGINT信号倒是可以)。现在我windows下面的程序需要在程序结束之前把之前修改的文件数据之类的还原回之前的状态,但是进程结束没有相应信号通知,就没还原就退出了,我想知道给位有什么办法吗?

如果我那里描述不好,我会再描述的。
...全文
171 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
holy_pigh 2013-08-14
  • 打赏
  • 举报
回复
但还是想请问有什么方法没。。
holy_pigh 2013-08-14
  • 打赏
  • 举报
回复
引用 12 楼 zhao4zhong1 的回复:
直接拔电源或者停电咋办? 地震、海啸咋办?
哦,似乎有些道理。。
赵4老师 2013-08-14
  • 打赏
  • 举报
回复
直接拔电源或者停电咋办? 地震、海啸咋办?
zhctj159 2013-08-14
  • 打赏
  • 举报
回复
使用atexit挂接退出函数,在退出函数中完成文件数据恢复工作
holy_pigh 2013-08-14
  • 打赏
  • 举报
回复
再发下我的意思: 程序在任务管理器或CMD中被kill掉,windows是否发送某种信号到被杀进程,如何在进程中捕获这个信号? 若没有办法捕捉到,那有其他方法吗? ps:9楼,你是打酱油的吧?
赵4老师 2013-08-14
  • 打赏
  • 举报
回复
不要企图优雅的结束(因为这是不可能办到的) 而要在烂的不能再烂的摊子上也能重整河山!
holy_pigh 2013-08-14
  • 打赏
  • 举报
回复
someone help me pelase!!!
holy_pigh 2013-08-14
  • 打赏
  • 举报
回复
可随时退出,比如taskkill掉它。 但是就是不知道怎么样程序才能接受知道即将退出。
holy_pigh 2013-08-14
  • 打赏
  • 举报
回复
引用 5 楼 max_min_ 的回复:
[quote=引用 3 楼 holy_pigh 的回复:] [quote=引用 1 楼 max_min_ 的回复:] 不可以在结束之前调用接口来恢复数据的么?
用taskkill的话,收不到SIGTERM,所以没办法跳转到恢复数据的接口,我想知道有什么办法通告程序即将退出。[/quote] 你的程序会异常退出么? 在main的最后加你恢复数据的接口不行么? 另外还有退出执行的函数 atexit,你查查资料看看怎么用,我用了man看了下, atexit函数是退出程序前之前执行的函数[/quote] 你可以把我说的情况看做为异常退出,(程序一直死循环在那边,知道结束到退出信号,跳转至恢复数据接口,处理完成后再退出) 你说的atexit不行,我试过了。。
max_min_ 2013-08-14
  • 打赏
  • 举报
回复
引用 3 楼 holy_pigh 的回复:
[quote=引用 1 楼 max_min_ 的回复:] 不可以在结束之前调用接口来恢复数据的么?
用taskkill的话,收不到SIGTERM,所以没办法跳转到恢复数据的接口,我想知道有什么办法通告程序即将退出。[/quote] 你的程序会异常退出么? 在main的最后加你恢复数据的接口不行么? 另外还有退出执行的函数 atexit,你查查资料看看怎么用,我用了man看了下, atexit函数是退出程序前之前执行的函数
holy_pigh 2013-08-14
  • 打赏
  • 举报
回复
在线等~!!!
holy_pigh 2013-08-14
  • 打赏
  • 举报
回复
引用 1 楼 max_min_ 的回复:
不可以在结束之前调用接口来恢复数据的么?
用taskkill的话,收不到SIGTERM,所以没办法跳转到恢复数据的接口,我想知道有什么办法通告程序即将退出。
holy_pigh 2013-08-14
  • 打赏
  • 举报
回复
问题是我不知道什么时候结束,程序是一直循环在那边的,直到接受到程序退出的信号,才恢复之前的数据。 关键是如何通告程序,“你要退出了,快把你之前修改的数据还原一下再退出把”。
max_min_ 2013-08-14
  • 打赏
  • 举报
回复
不可以在结束之前调用接口来恢复数据的么?

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧