C中没有C ++的exception处理

Linux是否提供了C中的exception处理而不使用C ++? 或者,什么可能是实现这种exception处理的最佳方式? 目标是避免检查每个被调用的函数的返回码,而是使用C ++中的线程安全且便于携带的方法。

Solutions Collecting From Web of "C中没有C ++的exception处理"

我从来没有听说过Linux提供类似的东西,但是这个页面描述了一个C的第三方异常处理库: http : //www.on-time.com/ddj0011.htm我一直没有找到下载链接,虽然。

你可以通过写信号处理器来处理信号。 GNU中记录的一些信号是:

  • 程序错误信号:用于报告严重的程序错误。
  • 终止信号:用于中断和/或终止程序。
  • 警报信号:用于指示定时器到期。
  • 异步I / O信号:用于指示输入可用。
  • 作业控制信号:用于支持作业控制的信号。
  • 操作错误信号:用于报告操作系统错误。
  • 杂项信号:杂项信号。
  • 信号消息:打印描述信号的消息

你可以在这里获得更多的信息。 它陈述以下,我想是你在找什么:

如果您预料到会引发信号的事件,则可以定义处理函数,并在特定类型的信号到达时通知操作系统运行它。

内核通过使用goto来跳转到拆卸部分。

在这里看到的编码标准: http : //lxr.linux.no/linux+v2.6.34/Documentation/CodingStyle

可能是Offtopic,但我无法抗拒,对不起。

我必须说,迄今为止我所见过的唯一一个非常好且全面的异常机制是Windows中的SEH结构异常处理。

IT打击C ++异常处理模型(在堆栈展开期间异常处于自动对象的析构函数中时引发异常)。

加上它是一个非常统一的异常处理,因为它将软件异常和硬件生成的异常相结合。

所以,如果你想要异常处理 – 或者为Windows编写代码,或者为Linux实现类似的东西。

PS与许多人认为的不同,异常处理不止是使用jmp中断正常的程序流程。

这也是一个关于谁和如何处理例外的谈判链。 这是(最重要的) – 每个作用域的正确清理执行,处理嵌套异常等。

我可以建议你看看我的图书馆exceptions4c ? 它已经在Linux上进行过测试,并具有许多特性,例如finally块,信号处理和一种多态性 ,可以让您创建异常层次结构。 它也支持多线程。