gcc Implementierung von rand ()

7

Ich habe stundenlang versucht, die Implementierung der in gcc verwendeten Funktion rand () zu finden ... Es würde sehr geschätzt werden, wenn jemand mich auf die Datei verweisen könnte, die seine Implementierung oder Website mit der Implementierung enthält.

Übrigens, welches Verzeichnis (ich benutze Ubuntu, wenn das wichtig ist) enthält die c-Standard-Bibliothek-Implementierungen für den GCC-Compiler?

    
Sason 14.10.2010, 12:18
quelle

2 Antworten

13

rand besteht aus einem Aufruf einer Funktion __random , die meistens nur eine andere Funktion namens __random_r in random_r.c.

Beachten Sie, dass die obigen Funktionsnamen Hyperlinks zum glibc Quellenrepository bei Version 2.15 sind.

Die zufällige Glibc-Bibliothek unterstützt zwei Arten von Generatoren: einen einfachen linearen kongruenten und einen komplexeren Linear Feedback Schieberegister eins. Es ist möglich, Instanzen von beiden zu erstellen, aber der globale Standardgenerator, der beim Aufruf von rand verwendet wird, verwendet den linearen Feedback-Schieberegistergenerator (siehe die Definition von unsafe_state.rand_type ).

    
Tom Anderson 14.10.2010 12:42
quelle
9

Sie finden die von GCC verwendete C-Bibliotheksimplementierung im Projekt GNU GLIBC .

Sie können es herunterladen und Sie sollten rand() implementation finden. Quellen mit Funktionsdefinitionen sind normalerweise nicht auf einer Linux-Distribution installiert. Nur die Headerdateien, von denen ich vermute, dass Sie sie bereits kennen, werden normalerweise in /usr/include Verzeichnis gespeichert.

Wenn Sie mit der Quellcodeverwaltung GIT vertraut sind, können Sie Folgendes tun:

%Vor%

Um den GLIBC-Quellcode zu erhalten.

    
Pablo Santa Cruz 14.10.2010 12:19
quelle

Tags und Links