2010-03-03 10 views
8

में लाइब्रेरी फ़ंक्शन के लिए हेडर फ़ाइल को कैसे शामिल किया जाए, फ़ंक्शन को देखते हुए, आइओई कहें, मैं हेडर फ़ाइल कैसे ढूंढ सकता हूं यदि मुझे इस फ़ंक्शन का उपयोग करना है तो मुझे शामिल करना चाहिए? मैं हमेशा उस मुद्दे के लिए परेशान हो जाता हूं। अगर मुझे लिनक्स सी एपीआई के रूप में "एटोई" जैसे फ़ंक्शन का इलाज करने दें, तो मैं अपना प्रश्न किसी अन्य तरीके से रख सकता हूं: क्या लिनक्स सी एपीआई के लिए एक दस्तावेज़ है?लिनक्स

+2

देखें आदमी या जानकारी और अनुरूप कहाँ अनुरूप आप उपयोग करना मैनपेज खंड देता है। –

उत्तर

12

Man pages। अपने कमांड प्रॉम्प्ट पर man atoi टाइप करें (या, सामान्य रूप से, man <function>)। यह आपको उपयोग की जानकारी के साथ-साथ शीर्षकों की एक सूची भी शामिल करेगा।

मैन पेज भी प्रोग्राम और कमांड दस्तावेज (ढूंढें, grep, cd, आदि)। कभी-कभी आप ऐसे मामले में भाग ले सकते हैं जहां एक प्रोग्राम के पास सी फ़ंक्शन (जैसे लिखें) के समान नाम होता है। उस स्थिति में, आपको मैन्युअल के सही खंड, सिस्टम कॉल के लिए सेक्शन 2 और लाइब्रेरी फ़ंक्शंस के लिए सेक्शन 3 के लिए मैन को निर्देशित करने की आवश्यकता है। आप इसे "मैन" और कमांड नाम के बीच सेक्शन नंबर डालने से करते हैं: man 2 write। यदि आपको नहीं पता कि कोई दिया गया फ़ंक्शन सिस्टम कॉल या लाइब्रेरी फ़ंक्शन है, तो दोनों को आजमाएं।

आप man man टाइप करके मैन्युअल पृष्ठों के बारे में अधिक जान सकते हैं।

+2

+1 साइड नोट: कुछ प्लेटफ़ॉर्म पर यह संभव है कि आपको इन पैकेजों को इंस्टॉल करना होगा (उदा।उबंटू 'मैनपेज-पॉजिक्स-देव' (हेडर) और 'मैनपेज-देव' (फ़ंक्शंस) के लिए) – ChristopheD

1
लिनक्स सी एपीआई के लिए एक दस्तावेज़ है?

निश्चित रूप से। दस्तावेज मैन पेज के रूप में उपलब्ध है। एक टर्मिनल में man <function> टाइप करें और आनंद लें। आपको कौन सी शीर्षलेख फ़ाइल शामिल करने की आवश्यकता है, आमतौर पर शीर्ष पर दिखाया जाता है।

1

यदि आप ctags और vim संपादक का उपयोग कर रहे हैं और आपने ctags को स्कैन/usr/शामिल करने के लिए सेट किया है तो ctrl-] जबकि आप उस फ़ंक्शन पर हैं जो आप ढूंढना चाहते हैं, आपको हेडरफ़ाइल पर ले जाता है!

0

आप निम्नलिखित भी

whereis <function name> 

यह समारोह के लिए पथ नाम दे देंगे उपयोग कर सकते हैं। फिर विम संपादक का उपयोग कर पथ खोलें। फिर "vim" संपादक का उपयोग करके आप हेडर फ़ाइल देख सकते हैं।

उदाहरण

> whereis atoi 
    atoi: /usr/share/man/man3/atoi.3.gz 

> vim /usr/share/man/man3/atoi.3.gz 

    ---------- 
    ---------- 
    .B #include <stdlib.h> 
+1

यह 'मैन एटोई' करने का एक जटिल तरीका प्रतीत होता है। – bfontaine

+0

जैसा कि अत्यधिक जटिल ऊपर बताया गया है। – haziz

2

या, आप खोज कर सकते हैं आपके सिस्टम के लिए/usr/समारोह परिभाषा आप देख रहे हैं की घटनाओं के लिए निर्देशिका में शामिल हैं। यह विशेष रूप से एम्बेडेड या स्ट्रिप-डाउन लिनक्स सिस्टम के लिए उपयोगी है जो मैन पेज गायब हैं।

find /usr/include -name "*.h" -print | xargs grep "<function-you-are-looking-for>" 

उदाहरण के लिए, यदि आप कार्य करें:

find /usr/include -name "*.h" -print | xargs grep atoi 

आप वापस कुछ इस तरह मिल जाएगा:

/usr/include/stdlib.h:extern int atoi (__const char *__nptr) 

परिणाम दोनों हेडर फाइल नाम और इंटरफ़ेस परिभाषा में शामिल है।

  • कृपया ध्यान दें कि आपकी/usr/निर्देशिका शामिल हो सकती है।
+1

यह भी ध्यान दें कि कई चीजें सिस्टम-विशिष्ट, (और कभी-कभी कर्नेल-संस्करण-विशिष्ट) में निजी हेडर फ़ाइलों में परिभाषित की जाती हैं जिन्हें सार्वजनिक हेडर फ़ाइलों द्वारा # शामिल किया गया है, इसलिए grep के माध्यम से खोज आपको हमेशा सही उत्तर नहीं मिलेगी। –