से अपने स्वयं के पर्यावरण में एक अविश्वसनीय लुआ फ़ाइल को निष्पादित करने के लिए कैसे करें lua_setfenv() पर कॉल करके मैं अपने पर्यावरण में एक अविश्वसनीय .lua फ़ाइल निष्पादित करना चाहता हूं ताकि यह मेरे किसी भी कोड को प्रभावित न कर सके।सी एपीआई
उस फ़ंक्शन के लिए प्रलेखन हालांकि केवल फ़ंक्शन को कॉल करने का तरीका बताता है, फ़ाइल को निष्पादित करने के तरीके के बारे में नहीं।
वर्तमान फ़ाइल को चलाने के मैं का उपयोग करें:
int error = luaL_loadfile(mState, path.c_str()) || lua_pcall(mState, 0, 0, 0);
मैं lua_setfenv
साथ सी एपीआई से "dofile" lua समारोह कॉल करने के लिए है, या वहाँ यह करने के लिए एक और अधिक सुरुचिपूर्ण तरीका है?
धन्यवाद; मैंने डीबग हुक सेट करके अनंत लूप का ख्याल रखा है जो 10 मिलियन निर्देशों के बाद स्क्रिप्ट को समाप्त करता है। कार्यों के लिए, उपयोगकर्ता द्वारा प्रदान की गई फ़ाइल में केवल वैश्विक चर शामिल हैं और कोई भी कार्य नहीं है, इसलिए मुझे किसी भी फ़ंक्शन को श्वेतसूची में नहीं करना है। –