問題:有沒有一種方法可以在系統或已啓動的程序終止lua腳本時調用函數腳本(例如C程序)? lua的atexit()/清理功能。調用終止/退出lua腳本(atexit()/清理函數)的函數
情況:一個外部C程序(稱爲PROG)管理一個Lua腳本(稱爲腳本),並調用其功能的LUA腳本使用其預留資源分離庫(。所以,CAL它LIB)當lua腳本退出時應該釋放它。 lua腳本由PROG來管理(並由此終止),我不能改變它。 SCRIPT應在終止時通知LIB。
這怎麼辦? 注:我是相當新的LUA所以也請解釋你的答案,非常感謝:)
我在Linux上使用的Lua 5.3.1
目前,這似乎工作:
a = {__gc = function() print'exit function from LIB called' end}
setmetatable(a,a)
您可以調用C函數[lua_close](http://www.lua.org/manual/5.3/manual.html#lua_close)並使用[userdata with __gc](http://www.lua.org /pil/29.html)? –
我無法調用將用於管理C程序的lua_close函數。我稍微重新提出了我的問題,因爲我認爲它還不清楚。我想要一個lua的atexit()函數,它會從我的庫中調用一個函數來清理它的資源。 – iami