2012-07-31 13 views
5

क्या कोई भी कृपया copy_from_user विधि के लिए आवश्यक उचित शीर्षलेख फ़ाइलों को प्राप्त करने में मेरी सहायता कर सकता है?क्या हैडर में copy_from_user() घोषित किया गया है?

मुझे कुछ हेडर्स शामिल हैं जिनमें मुझे चाहिए, लेकिन मेरा कंपाइलर यह कहता रहता है कि वे नहीं पाए गए हैं। मैं अपनी मशीन पर सेंटोस चला रहा हूं। मैंने yum विभिन्न कर्नेल-हेडर और डेवेल पैकेज स्थापित करने की कोशिश की है लेकिन अभी भी कोई भाग्य नहीं है।

क्या मेरे पास gcc कमांड में जोड़ने के लिए एक विशेष सेगमेंट है? इंटरनेट पर जो कुछ भी मुझे मिलता है, वह केवल मुझे बताता है कि विधि का उपयोग कैसे करें, लेकिन असल में वास्तव में मैं इसे कैसे प्राप्त कर सकता हूं।

+0

क्या आप कर्नेल मॉड्यूल को कोडिंग कर रहे हैं? यदि आप करते हैं, तो आपको इसे संकलित करने के लिए कुछ विशिष्ट तरीके की आवश्यकता होगी .... –

उत्तर

11

मुझे लगता है कि आप एक कर्नेल मॉड्यूल विकसित कर रहे हैं, क्योंकि इसके बाहर copy_from_user का उपयोग करने का प्रयास नहीं किया जाएगा। किसी भी तरह से, गिरी उपयोग में:

#include <linux/uaccess.h> 

संपादित: अगर निर्माण कर्नेल मॉड्यूल आप इस Hello World Linux Kernel Module को देखने के लिए चाहते हो सकता है कि आप क्या चाहते हैं। विशेष रूप से मेकफ़ाइल भाग आपके लिए ब्याज का हो सकता है (obj-m के लिए खोजें)।

+0

मैं अभी भी सीख रहा हूं क्योंकि मैं जाता हूं इसलिए मुझे 5 बजे की तरह समझाने से डरो मत। मैंने देखा कि इसमें बयान शामिल है लेकिन वह और "asm/uaccess.h" दोनों मुझे बताते हैं कि संकलन करने की कोशिश करने के बाद वे नहीं मिल सकते हैं। एक kernelname.c फ़ाइल को संकलित करने की कोशिश करने से बस एक कर्नेल मॉड्यूल को एक अलग प्रक्रिया विकसित कर रहा है? मैं एक प्रोग्राम लिख रहा हूं जो किसी को एल्स हेडर फाइल/विधियों का उपयोग करता है। वे "char __user * buf" के रूप में जानकारी का एक महत्वपूर्ण टुकड़ा संग्रहित कर रहे हैं। मैं उस बफर का उपयोग करने की कोशिश कर रहा हूं और बाद में उपयोग करने के लिए इसे एक लिंक्ड सूची में संग्रहीत कर रहा हूं लेकिन चूंकि यह एक सूचक है, इसलिए मैं इसे कई अलग-अलग बफर को सहेजने के लिए नहीं मिल सकता। – user1566813

+0

हां, एक नियमित अनुप्रयोग विकसित करने से कर्नेल मॉड्यूल विकसित करना बहुत अलग है। कर्नेल मॉड्यूल विकसित करने के प्राथमिक कारणों में से एक डिवाइस ड्राइवर (वास्तविक हार्डवेयर को नियंत्रित करने के लिए) लिखना है। यदि आप नियमित एप्लिकेशन (यानी 'मुख्य()' फ़ंक्शन के साथ) विकसित करने की कोशिश कर रहे हैं, तो आपको उस कोड का उपयोग करने में सक्षम होने की उम्मीद नहीं करनी चाहिए जो 'copy_from_user' या' __user' एनोटेटेड पॉइंटर्स का उपयोग करता है। – Giel

संबंधित मुद्दे