अर्थ#
पॉइंटर, स्ट्रक्चर और C संख्याओं के लिए LuaJIT मान। ffi.string, C स्ट्रिंग को Lua स्ट्रिंग में कॉपी करता है; ffi.cast प्रकार का दृश्य बदलता है, लेकिन पते की वैधता साबित नहीं करता। मेमोरी का जीवनकाल अलग से जाँचें।
उदाहरण#
local ffi = require("ffi")
local value = ffi.new("uint64_t", 42)
local kind = type(value) -- cdata
local bytes = ffi.sizeof(value)क्या होता है: मान uint64_t है जिसमें 42 है; प्रकार = "cdata"; बाइट्स = 8.
यह टुकड़ा लॉग संदेश नहीं प्रिंट करता है या नहीं लिखता है। दिखाए गए मान उदाहरण के अपेक्षित परिणाम हैं।
मेथड और संबंधित कॉल#
| फ़ंक्शन | लौटाता है | उद्देश्य |
|---|---|---|
| ffi.cast | cdata |
सी-प्रकार का कास्ट द्वारा स्कालर cdata बनाता है। कास्टिंग मेमोरी पते को मान्य नहीं करता है। |
| ffi.cdef | none |
FFI के लिए C प्रकार और हस्ताक्षर घोषित करता है; यह कोई पुस्तकालय लोड नहीं करता है या कोई फ़ंक्शन लागू नहीं करता है। |
| ffi.copy | none |
बफर में बाइट्स की प्रतिलिपि। उत्सर्जन लंबाई के लिए Lua स्ट्रिंग की आवश्यकता होती है और इसके शून्य समाप्तकर्ता को भी कॉपी किया जाता है। |
| ffi.new | cdata |
cdata को आवंटित और आरंभ करता है। चर-लंबाई वाले सरणी या स्ट्रक्ट के लिए आकार तर्क की आवश्यकता होती है। |
| ffi.sizeof | number | nil |
C प्रकार या cdata के बाइट आकार को लौटाता है; अज्ञात आकार शून्य उत्पन्न कर सकता है। |
| ffi.string | string |
C पॉइंटर से डेटा को Lua स्ट्रिंग में कॉपी करता है; बिना लंबाई के यह शून्य टर्मिनेटर को पढ़ता है। |