2011-09-13 7 views
5

क्या लिनक्स कर्नेल मॉड्यूल में थ्रेड स्थानीय डेटा बनाना संभव है?लिनक्स कर्नेल मॉड्यूल में थ्रेड स्थानीय डेटा

मुझे अपने मॉड्यूल को कॉल करने वाली प्रत्येक प्रक्रिया/थ्रेड के लिए कुछ डेटा स्टोर करने की आवश्यकता है। क्या थ्रेड स्थानीय डेटा का उपयोग करने का कोई आसान तरीका है, या क्या मुझे का उपयोग करना हैश नक्शा लिखना है जो वर्तमान प्रक्रिया के पिड को कुंजी के रूप में उपयोग करता है?

+0

मुझे पूरा यकीन है कि आपको किसी भी तरह से कार्य संरचना के साथ लिंक करना होगा ... –

उत्तर

4

कर्नेल मॉड्यूल के लिए इंटरफ़ेस मानना ​​एक वर्ण डिवाइस ड्राइवर है, तो आपके पास फ़ाइल स्ट्रक्चर (जो कि उपयोगकर्ता स्पेस फ़ाइल डिस्क्रिप्टर के समान है) में एक निजी_डेटा फ़ील्ड है।

बस खुले फ़ाइल ऑपरेशन पर अपनी पसंद की संरचना में पॉइंटर आवंटित और असाइन करें।

यह बिल्कुल थ्रेड या स्थानीय प्रक्रिया नहीं है, लेकिन ज्यादातर मामलों में आपकी प्रक्रिया में एक फ़ाइल डिस्क्रिप्टर का मैपिंग सत्य है और यह आपके लिए पर्याप्त हो सकता है।

+0

आपको बहुत धन्यवाद, ऐसा लगता है कि मैं जो खोज रहा था – ar31