Linux是否提供C中的異常處理而不使用C++?或者,什麼可能是實現這種異常處理的最佳方式?目標是避免檢查每個調用的函數的返回碼,但要做一些類似於C++的線程安全且便於攜帶的操作。在C中沒有C++的異常處理在Linux中
回答
我從來沒有聽說過的Linux提供了這樣的事情,但這個頁面描述了一個第三方的異常處理庫爲C:http://www.on-time.com/ddj0011.htm我一直沒能找到下載鏈接,但。
謝謝,同時我偶然發現了同一個網站,但都找不到源代碼。 – stefangachter 2010-08-27 06:59:28
在這裏,是關於excation處理的一些一般想法和對上述實現的評論:http://landheer-cieslak.com/wordpress/error-handling-in-c/ – stefangachter 2010-08-27 07:36:55
您可以通過爲其編寫信號處理程序來處理信號。 在GNU中記錄的這些信號中有一些是:
- 程序錯誤信號:用於報告嚴重的程序錯誤。
- 終止信號:用於中斷和/或終止程序。
- 警報信號:用於指示定時器到期。
- 異步I/O信號:用於指示輸入可用。
- 作業控制信號:用於支持作業控制的信號。
- 操作錯誤信號:用於報告操作系統錯誤。
- 其他信號:雜項信號。
- 信號消息:打印描述的信號
你可以在深入瞭解這個here更多信息的消息。 它說,我想下面是你在找什麼:
如果預計會導致信號的情況下,你可以定義一個處理 功能,並告訴操作系統上運行的時候,那個特定類型 的信號到達。
感謝您的提示。你知道一些使用信號進行表達式處理的示例代碼嗎? – stefangachter 2010-08-27 07:00:25
如果您閱讀我的文章中的鏈接,有示例代碼。 – 2010-08-27 07:04:48
內核通過使用轉到跳轉到拆卸部分。
看到這裏的編碼標準: http://lxr.linux.no/linux+v2.6.34/Documentation/CodingStyle
Offtopic可能,但我無法抗拒它,對不起。我必須說,迄今爲止我所見過的唯一真正優秀和全面的異常機制是Windows中的SEH結構異常處理。它打擊了C++異常處理模型(當堆棧展開期間異常處於自動對象的析構函數中時引發了這種異常處理模型)。
加上它是一個非常統一的異常處理,因爲它結合了軟件異常和硬件生成的異常。
因此,如果您想要異常處理 - 無論是爲Windows編寫,還是爲Linux實現類似的東西。
P.S.與許多人認爲的不同,異常處理是:使用jmp
中斷正常的程序流程,遠遠超過。
這也是一個關於誰和如何處理異常的談判鏈。這是(最重要的) - 正確的清理執行在每個範圍,處理嵌套的異常和等
我可以建議你看看我的圖書館exceptions4c?它已在Linux上進行過測試,並具有許多功能,例如finally
塊,信號處理和一種多態性,它允許您創建異常層次結構。它也支持多線程。
- 1. 在c#中的異常處理#
- 2. 處理一類,沒有在C#中拋出異常
- 3. 異常處理在c#
- 4. Linux中的異常處理
- 5. 在C++ Builder中設置異常處理
- 6. 在c#中處理異常backgroundWorker
- 7. 在C++中處理CPU異常
- 8. C++異常處理
- 9. C#異常處理
- 10. 處理在C#中的C++線程引發的異常
- 11. 在C#中int沒有溢出異常?
- 12. 如何在C++異常處理中包裝我的C代碼?
- 13. 異常處理....在Xcode /的OBJ-C
- 14. DUMP在未處理的C++異常
- 15. C#中的異常處理 - 如何?
- 16. 如何處理C#中的ping異常?
- 17. 處理Objective-C中的異常
- 18. 處理C#中的致命異常?
- 19. 在沒有視圖的ViewModel中處理異常(在ReactiveUI中)
- 20. python異常與C++異常處理
- 21. c異常處理sql異常#
- 22. 如何時異常在C處理
- 23. OutOfMemoryException異常是未處理Image.FromFile()在C#
- 24. C# - 從finally子句中處理異常
- 25. 處理AccessViolation異常C#
- 26. C++何時處理異常
- 27. 純C異常處理庫
- 28. PHP異常處理vs C#
- 29. Objective-C異常處理
- 30. C#ThreadPool QueueUserWorkItem異常處理
真正的男人使用setjmp()/ longjmp()。 – 2010-08-27 06:28:34
謝謝,會檢查出來。如下所示,使用setjmp/longjmp over信號有沒有優勢/劣勢? – stefangachter 2010-08-27 06:56:06