2010-12-09 9 views
5

मैं उपयोगकर्ता कार्यक्रम और एक कर्नेल मॉड्यूल से मिलकर एक कार्यक्रम लिख रहा हूँ। कर्नेल मॉड्यूल को डेटा इकट्ठा करने की आवश्यकता है कि वह उपयोगकर्ता प्रोग्राम को "भेज" देगा। यह एक/proc फ़ाइल के माध्यम से किया जाना है। अब, मैं फाइल बना रहा हूं, सब कुछ ठीक है, और जवाब देने के लिए इंटरनेट पढ़ने में उम्र बिताई और अभी भी एक नहीं मिल सका। आप को कैसे पढ़ सकता गिरी अंतरिक्ष से/लिखने/proc फ़ाइल ? जबकि मैं मॉड्यूल की जरूरत है/proc फाइल ही लिखने के लिए सक्षम होने के लिए write_proc और read_proc procfile को आपूर्ति, उपयोगकर्ता अंतरिक्ष से डेटा पढ़ने और लिखने के लिए इस्तेमाल किया जाता है।कर्नेल स्पेस से लिनक्स/प्रो फाइल से/पढ़ने/लिखने के लिए कैसे?

उत्तर

9

यह कैसे काम करता है कि नहीं है। जब कोई उपयोगकर्तास्पेस प्रोग्राम फ़ाइलों को खोलता है, तो वे फ्लाई पर केस-दर-मामले आधार पर उत्पन्न होते हैं। उनमें से अधिकांश केवल पढ़ने के लिए और एक सामान्य प्रणाली द्वारा उत्पन्न कर रहे:

  • create_proc_read_entry
  • आपूर्ति एक कॉलबैक फ़ंक्शन (सम्मेलन से बुलाया read_proc) के साथ एक प्रवेश रजिस्टर जो जब फ़ाइल पढ़ा जाता है कहा जाता है
  • इसके लिए कॉलबैक फ़ंक्शन फ़ाइल सूचक आदि यूज़रस्पेस को आपूर्ति की अद्यतन करने के लिए एक आपूर्ति बफर और (आमतौर पर) कॉल proc_calc_metrics पॉप्युलेट करना चाहिए।

आप (कर्नेल से) procfs फ़ाइलों को "लिखना" नहीं करते हैं, तो जब उपयोगकर्ता उपयोगकर्ता अनुरोध करते हैं तो आप गतिशील रूप से परिणाम प्रदान करते हैं।

0

दृष्टिकोण से एक उपयोगकर्ता अंतरिक्ष seq_files होगा भर में डेटा प्राप्त करने के लिए। कर्नेल पैरामीटर को कॉन्फ़िगर करने के लिए आप sys-fs नोड्स पर विचार करना चाहेंगे।

धन्यवाद, विजय

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