0
A
回答
1
如果您的應用程序關閉,不用擔心內存。無論如何,操作系統會拋棄它。
您需要在信號處理程序中清理的東西是否會超出您的流程 - 例如,如果您創建的子流程需要退出,那麼您應該告訴它這樣做。
1
一般情況下,你不希望在除了設置將你的程序的其它部分反應,以一個布爾標誌信號處理程序在很多都做,通常導致一些循環告吹,並允許熟悉的方法在不涉及信號的情況下按順序關機。使用此標誌來協調關閉的原因是,某些庫函數避免了異步信號處理期間需要安全重入的妥協。即使一些使用線程特定內存的線程安全函數也可能無法應對異步重入。快速搜索在http://book.chinaunix.net/special/ebook/addisonWesley/APUE2/0201433079/ch10lev1sec6.html#ch10lev1sec6發現了一些關於安全功能的討論。
相關問題
- 1. wxPython處理SIGTERM/SIGINT
- 2. 如何在Erlang中處理SIGINT?
- 3. SIGINT處理和函數getline
- 4. 使用scanf循環處理SIGINT
- 5. 我該如何處理中斷(即SIGTERM或SIGINT)
- 6. 如何重新引發SIGINT?
- 7. 處理信號sigtstp - sigcont - sigint與子進程在C
- 8. 在腳本中處理SIGINT(ctrl + c)而不是解釋器?
- 9. 哪個線程是調用的信號處理程序(例如signal(SIGINT,crtl_c);)?
- 10. 如何處理
- 11. 如何處理
- 12. 如何處理
- 13. 如何獲取Postgres中某些信號(例如SIGINT)的處理程序名稱/地址?
- 14. 如何將SIGINT發送到shell腳本?
- 15. 如何在Python中捕獲SIGINT?
- 16. 如何在將SIGINT指向某些用戶定義的處理程序一段時間後將SIGINT重置爲默認值?
- 17. 如何處理未處理在node.js中
- 18. 如何處理windows批處理變量?
- 19. 如何處理CIDR塊/文本處理?
- 20. 如何處理未處理的IOErrorEvent
- 21. 如何處理未處理的異常?
- 22. SIGINT和SIGQUIT
- 23. 無法爲SIGINT
- 24. quick perl sigint handler
- 25. 當使用SIGINT默認處理程序時從系統()返回值
- 26. Java註釋處理 - 如何處理已處理的代碼?
- 27. 如何處理System.AccessViolationException?
- 28. 如何處理ToolStripDropDown?
- 29. 如何處理ValueError?
- 30. 如何處理HTREEITEM
其他信息和代碼示例在這裏:http://stackoverflow.com/questions/4250013/is-destructor-called-if-sigint-or-sigstp-issued – 2011-01-27 03:48:45
你是什麼意思,它是不可能調用`刪除`? – 2011-01-27 03:54:34
由於SIGINT可能異步發生,因此在內存管理任務期間堆可能不一致? `delete`是由一個信號處理程序調用的,它會中斷對`new`的調用會發生什麼? – 2011-01-27 03:59:52