Julia 1.0 - Dynamic Linker

गतिशील लिंकर




julia

गतिशील लिंकर

Libdl.dlopen फ़ंक्शन

dlopen(libfile::AbstractString [, flags::Integer])

एक साझा पुस्तकालय लोड करें, एक अपारदर्शी हैंडल लौटाएं।

निरंतर dlext ( .so , .dll , या dlext ) द्वारा दिए गए एक्सटेंशन को libfile स्ट्रिंग से छोड़ा जा सकता है, क्योंकि यदि आवश्यक हो तो यह स्वचालित रूप से संलग्न है। यदि libfile एक पूर्ण पथ का नाम नहीं है, तो सरणी में पथ DL_LOAD_PATH को DL_LOAD_PATH लिए खोजा libfile , उसके बाद सिस्टम लोड पथ।

वैकल्पिक झंडे का तर्क एक बिटवाइज़-या शून्य या RTLD_LOCAL , RTLD_GLOBAL , RTLD_LAZY , RTLD_NOW , RTLD_NODELETE , RTLD_NOLOAD , RTLD_DEEPBIND और RTLD_FIRST । यदि संभव हो तो, या मौजूदा प्लेटफॉर्म पर निर्दिष्ट कार्यक्षमता उपलब्ध नहीं होने पर, ये POSIX (और / या GNU libc और / या MacOS) dlopen कमांड के संबंधित झंडे में परिवर्तित हो जाते हैं। डिफ़ॉल्ट झंडे मंच विशिष्ट हैं। MacOS पर डिफ़ॉल्ट dlopen झंडे RTLD_LAZY|RTLD_DEEPBIND|RTLD_GLOBAL जबकि अन्य प्लेटफार्मों पर डिफॉल्ट RTLD_LAZY|RTLD_DEEPBIND|RTLD_LOCAL | इन झंडों का एक महत्वपूर्ण उपयोग गैर-डिफ़ॉल्ट व्यवहार को निर्दिष्ट करने के लिए है जब डायनेमिक लाइब्रेरी लोडर निर्यात किए गए प्रतीकों के लिए पुस्तकालय संदर्भों को बांधता है और यदि बाध्य संदर्भों को प्रक्रिया में स्थानीय या वैश्विक दायरे में रखा जाता है। उदाहरण के लिए RTLD_LAZY|RTLD_DEEPBIND|RTLD_GLOBAL पुस्तकालय के प्रतीकों को अन्य साझा पुस्तकालयों में उपयोग के लिए उपलब्ध होने की अनुमति देता है, उन स्थितियों को संबोधित करते हुए जहां साझा पुस्तकालयों के बीच निर्भरताएं हैं।

source

Libdl.dlopen_e फ़ंक्शन

dlopen_e(libfile::AbstractString [, flags::Integer])

dlopen समान, त्रुटियों को बढ़ाने के बजाय NULL पॉइंटर को छोड़कर।

source

Libdl.RTLD_NOW लगातार

RTLD_DEEPBIND
RTLD_FIRST
RTLD_GLOBAL
RTLD_LAZY
RTLD_LOCAL
RTLD_NODELETE
RTLD_NOLOAD
RTLD_NOW

डोलोपेन के लिए स्थिर रखें। विवरण के लिए अपना प्लेटफ़ॉर्म मैन पेज देखें, यदि लागू हो।

source

Libdl.dlsym फ़ंक्शन

dlsym(handle, sym)

साझा लाइब्रेरी हैंडल से एक प्रतीक देखें, सफलता पर कॉल करने योग्य फ़ंक्शन पॉइंटर लौटाएं।

source

Libdl.dlsym_e फ़ंक्शन

dlsym_e(handle, sym)

साझा लाइब्रेरी हैंडल से प्रतीक देखें, चुपचाप लुकअप विफलता पर NULL पॉइंटर लौटाएं।

source

Libdl.dlclose फ़ंक्शन

dlclose(handle)

बंद साझा पुस्तकालय हैंडल द्वारा संदर्भित।

source

Libdl.dlext लगातार

dlext

वर्तमान प्लेटफ़ॉर्म पर डायनेमिक लाइब्रेरीज़ (जैसे dll, dylib, इत्यादि) के लिए फ़ाइल एक्सटेंशन।

source

Libdl.find_library फ़ंक्शन

find_library(names, locations)

locations सूची में पथों के names में पहले पुस्तकालय के लिए खोजें, DL_LOAD_PATH , या सिस्टम लाइब्रेरी पथ (उस क्रम में) जो सफलतापूर्वक dlopen'd हो सकते हैं। सफलता पर, वापसी मूल्य नामों में से एक होगा (संभावित स्थानों में एक पथ से उपसर्ग)। इस स्ट्रिंग को एक global const को सौंपा जा सकता है और भविष्य के ccall में लाइब्रेरी के नाम के रूप में उपयोग किया जा सकता है। असफल होने पर, यह खाली स्ट्रिंग लौटाता है।

source

Base.DL_LOAD_PATH लगातार

DL_LOAD_PATH

dlopen कॉल करते समय, इस सूची के पथों को पहले खोजा जाएगा, क्रम में, एक वैध लाइब्रेरी हैंडल के लिए सिस्टम स्थानों को खोजने से पहले।

source