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?
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
).
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.
Tags und Links gcc