2011-06-04 8 views
6

संभव डुप्लिकेट:
Where to find stdio.h functions implementations ?stdio.h के कार्यान्वयन को कहां खोजें?

हाय, मैं कार्यों stdio.h हेडर फाइल में परिभाषित के समारोह परिभाषाओं खोजने की कोशिश कर रहा हूँ, मैं सीखना चाहता हूँ कैसे printf की तरह काम करता है () हासिल किया गया है, लेकिन मुझे कहीं भी कार्यान्वयन फ़ाइल में stdio.h में कोई प्रीप्रोसेसर निर्देश लिंक नहीं मिल रहा है। एक सी कंपाइलर को फ़ंक्शन परिभाषा फ़ाइल के प्रत्यक्ष संदर्भ होने पर कार्यान्वयन कहां मिल सकता है? (मैंने सीखा है कि .h फ़ाइल एक उद्देश्य-सी पुस्तक से एक ही नाम .c कार्यान्वयन फ़ाइल के साथ हो सकती है।) क्या आप मेरी मदद कर सकते हैं? धन्यवाद! मैं मैक ओएस एक्स पर जीसीसी का उपयोग कर रहा हूं।

+2

एक "शीर्षक" एक फ़ाइल सब पर होने की ज़रूरत नहीं। एक कंपाइलर वास्तव में यह सब निर्मित कर सकता है। – Wiz

+0

चूंकि आपने निर्दिष्ट नहीं किया है कि आप किस कंपाइलर का उपयोग कर रहे हैं, यदि आप विजुअल स्टूडियो AFAIK का एक गैर-व्यक्त संस्करण है तो आप माइक्रोसॉफ्ट के कार्यान्वयन को देख सकते हैं। वे आम तौर पर पाए जाते हैं: '\ प्रोग्राम फ़ाइलें \ माइक्रोसॉफ्ट विजुअल स्टूडियो [वर्जन संख्या] \ VC \ crt' –

उत्तर

2

GLIBC लाइब्रेरी प्रोजेक्ट के लिए स्रोत कोड डाउनलोड करने का प्रयास करें। यही वह जगह है जहां मानक कार्यों के लिए परिभाषाएं जीसीसी कंपाइलर (और व्युत्पन्न) का उपयोग करते समय होती हैं।

+1

' gcc' को 'glibc' का उपयोग करने की आवश्यकता नहीं है। लेकिन यदि आप एक ठेठ लिनक्स डिस्ट्रो चला रहे हैं तो आप इसका उपयोग कर सकते हैं। – asveikau

5

FreeBSD का libc इसकी src repository में बहुत अच्छी तरह से तैयार है।

http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/

उदा printf(3) के लिए:

http://svnweb.freebsd.org/base/head/lib/libc/stdio/printf.c?view=markup

http://svnweb.freebsd.org/base/head/lib/libc/stdio/vfprintf.c?view=markup

+2

+1 फ्रीबीएसडी के ताज़ा रूप से सने स्रोत पेड़ – jwd

+1

के लिए +1 आप शायद 'vfprintf()' से लिंक करना चाहें, साथ ही वह कार्य जो सभी भारी भारोत्तोलन करता है - वास्तविक तर्कों को पार्स कर रहा है। – Wiz

+0

अच्छा सुझाव। किया हुआ। – Sean

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