Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 在不使用pkill的情况下优雅地退出程序的最佳方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我目前正在使用脚本调用pkill来终止我的C程序.但是我注意到使用pkill时没有从我的跟踪中调用析构函数.还有另一种好方法可以优雅地退出程序吗?pkill似乎有些不整洁,并且缓冲区中的一些日志不会被记录.我希望能够刷新我的fstream并以编程方式关闭所有资源(而不是依靠O / S来清理我的混乱).该应用程序24/7运行没有任何问题,我唯一想停止它是在维护@H_262_5@

我目前正在使用脚本调用pkill来终止我的C程序.@H_618_16@但是我注意到使用pkill时没有从我的跟踪中调用析构函数.

还有另一种好方法可以优雅地退出程序吗?@H_618_16@pkill似乎有些不整洁,并且缓冲区中的一些日志不会被记录.我希望能够刷新我的fstream并以编程方式关闭所有资源(而不是依靠O / S来清理我的混乱).

该应用程序24/7运行没有任何问题,我唯一想停止它是在维护期间.该应用程序没有任何用户界面供我输入exit.

最佳答案
您可以通过以下行为SIGTERM定义信号处理程序来实现:

你的include块中的某个地方:

#include <>dio.h>

是的,我们正在做我的风格!

代码的初始化部分的某处:

signal (SIGTERM,handler);

然后定义信号处理程序代码(刷新所有内容等):

void handler(int num) 
{
  // we might use this handler for many signals
  switch (num)
  {
    case SIGTERM:
      // clean up code.
      break;
  }
}

现在当你运行pkill< app="">时,< app="">是可执行文件名称,handler()的代码将运行.

如果没有开关,认的SIGTERM信号将被发送到应用程序.如果您选择使用不同的信号,则必须确保在处理程序()中“发送”相同的信号.

相关信息可以通过man 7信号找到,当然还有man kill.

大佬总结

以上是大佬教程为你收集整理的c – 在不使用pkill的情况下优雅地退出程序的最佳方法全部内容,希望文章能够帮你解决c – 在不使用pkill的情况下优雅地退出程序的最佳方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。