2010-10-14 14 views
7

मैंने जीसीसी में उपयोग किए गए रैंड() फ़ंक्शन के कार्यान्वयन को खोजने के लिए घंटों तक प्रयास किया है ... यदि कोई मुझे फ़ाइल के संदर्भ में या उसके साथ वेबसाइट पर संदर्भित कर सकता है तो इसकी बहुत सराहना की जाएगी कार्यान्वयन।रैंड के जीसीसी कार्यान्वयन()

वैसे, किस निर्देशिका (मैं उबंटू का उपयोग कर रहा हूं यदि इसमें मायने रखता है) में जीसीसी कंपाइलर के लिए सी मानक लाइब्रेरी कार्यान्वयन शामिल है?

+3

जीसीसी रैंड() को लागू नहीं करता है, यह एक कंपाइलर है, सभी कार्यों को ग्लिब से इस मामले में, libaries से आते हैं। – theomega

+0

या एमएसवीसीआरटी मिनजीडब्ल्यू – rubenvb

उत्तर

9

आपको GNU GLIBC प्रोजेक्ट में जीसीसी द्वारा उपयोग की जाने वाली सी लाइब्रेरी कार्यान्वयन मिलेगा।

आप इसे स्रोत डाउनलोड कर सकते हैं और आपको rand() कार्यान्वयन मिलना चाहिए। फ़ंक्शन परिभाषाओं वाले स्रोत आमतौर पर लिनक्स वितरण पर स्थापित नहीं होते हैं। केवल हेडर फाइलें जो मुझे लगता है कि आप पहले ही जानते हैं, आमतौर पर /usr/include निर्देशिका में संग्रहीत होते हैं।

आप GIT स्रोत कोड प्रबंधन के साथ परिचित हैं, तो आप कर सकते हैं:

$ git clone git://sourceware.org/git/glibc.git 

glibc स्रोत कोड प्राप्त करने के लिए।

+4

के मामले में, या सीधे इसमें कूदें: http://sourceware.org/git/?p=glibc.git;a=tree – progo

13

rand में फ़ंक्शन __random पर एक कॉल शामिल है, जो अधिकतर यादृच्छिक_आर.c में __random_r नामक एक अन्य फ़ंक्शन को कॉल करता है।

ध्यान दें कि उपरोक्त फ़ंक्शन नाम संस्करण 2.15 पर, glibc स्रोत भंडार के लिए हाइपरलिंक्स हैं।

ग्लिबैक यादृच्छिक पुस्तकालय दो प्रकार के जेनरेटर का समर्थन करता है: एक साधारण linear congruential एक, और एक अधिक परिष्कृत linear feedback shift register एक। या तो उदाहरण बनाने के लिए संभव है, लेकिन डिफ़ॉल्ट वैश्विक जनरेटर, जब आप rand पर कॉल करते हैं, तो रैखिक प्रतिक्रिया शिफ्ट रजिस्टर जनरेटर का उपयोग करता है (unsafe_state.rand_type की परिभाषा देखें)।

+0

ऐसा लगता है कि यह किसी भी तरह से रैखिक संगत जनरेटर और " fancier "(एसआईसी) algorythm। – ninjalj

+0

लिंक टूटे हुए हैं –

+0

@ निंजालज: आप सही हैं, और प्रशंसक एक डिफ़ॉल्ट है। मैं गलत था। –