我有一個析構函數,即使程序不正確地終止以確保外部進程死亡,也需要調用析構函數。退出或程序結束時執行函數
目前我已經註冊要調用的析構函數
std::atexit(killprocess);
std::at_quick_exit(killprocess);
然而,這意味着該方案已完成,但沒有終止時,進程沒有中止。有什麼方法可以確保killprocess或析構函數在退出或程序完成但未終止時調用?
編輯:完成但未終止的狀態來自visual studio,在最後添加了等待條件。我相信這意味着註冊kill process與atexit進程析構函數並不是在執行時自然被調用
「完成但未終止」是什麼意思?你的意思是'main'返回和過程實際結束之間的時間? –
調用killprocess作爲主要的最後一行 –
如果我理解問題正確[std :: at_exit](http://en.cppreference.com/w/cpp/utility/program/atexit)實際上正在做你想做的事情: '註冊func指向的函數,在正常程序終止時(通過std :: exit()或從主函數返回)調用''。 –