2012-03-05 15 views
5

में sysinfo संरचना मैं विभिन्न कर्नेल हेडर फ़ाइलों को देखने के आसपास घूम रहा था और <linux/kernel.h> पर ठोकर खा रहा था। इसके अंदर sysinfo नामक एक संरचना है।लिनक्स/kernel.h

मैंने बोलने के लिए बॉक्स से इसका उपयोग करने का प्रयास किया है और संरचना में सभी मूल्य लौटाए गए हैं। मुझे लगता है कि मुझे do_sysinfo(struct sysinfo *info) नामक पॉपप्लेटिंग फ़ंक्शन का उपयोग करने की आवश्यकता है।

बात यह है कि मुझे कोई जानकारी नहीं मिल रही है जो इसका उपयोग कैसे करती है। मैंने बॉक्स के बाहर काम करने की कोशिश की और यह असफल रहा क्योंकि इसे लिंक नहीं किया जा सका। किसी के पास इस बारे में कोई जानकारी है कि इसका उपयोग कैसे करें या यह क्यों विफल हो रहा है? मैं इस क्षेत्र में नौसिखिया हूँ। अगर आपके पास अच्छे गाइड/जानकारी के लिए कोई लिंक चाहिए, तो यह बहुत अच्छा होगा।

उत्तर

5

मुझे लगता है कि आपने उस कार्य को उपयोगकर्ता स्थान से कॉल करने का प्रयास किया है। यह संभव नहीं है, क्योंकि वह हेडर कर्नेल उपयोग के लिए है, स्ट्रक्चर सिसिन्फो को छोड़कर जो "साझा" है।

struct sysinfo को पॉप्युलेट करने के लिए आप शायद sys/sysinfo.h सहित सिस्टम कॉल int sysinfo(struct sysinfo *info) का उपयोग करना चाहते हैं।

4

do_sysinfo कर्नेल-साइड कार्यान्वयन है; यह उपयोगकर्तालैंड से उपलब्ध नहीं है। sysinfo सिस्टम कॉल सुलभ है, यद्यपि; यह क्या संरचना भरता है:

#include <sys/sysinfo.h> 

... 

struct sysinfo info; 
sysinfo(&info); 

नोट /proc में और अधिक जानकारी को पार्स फ़ाइलों द्वारा उपलब्ध नहीं है कि (उदा, /proc/uptime, /proc/cpuinfo, /proc/meminfo)।

+2

सबसे पहले, मेरे प्रश्न का उत्तर देने के लिए सभी को धन्यवाद। भारी मदद! वास्तव में मुश्किल। आप सब इस सामान को कहां से सीखते हैं? उस तरह का ज्ञान वेब पर कहीं भी नहीं है। इन छोटे विवरणों को जानने के लिए यह दर्द है। शांत सामान के लिए कोई लिंक? –

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

  • कोई संबंधित समस्या नहीं^_^