Sign in Join
Wiki copytemporary

Dev random/de

Deutsch · English · Français

In diesem Artikel handelt es sich um Unix Programmierung. Es geht in diesem Artikel und um das Erstellen einems zufälligen Initialwerts für den Zufallsgenerator der Funktion random.
=Übersicht= Mit /dev/random und /dev/urandom gibt es bei Unix und Unix basierenden Betriebsystemen zwei Schnittstellen, die Speicher, Laufwerke und Netzwerk-Dumps aus dem Kernel (und soweit vorhanden und aktiviert Kryptografie-Harware) zu (Pseudo-) Zufallszahlen verarbeiten.\

Der Unterschied zwischen /dev/random und /dev/urandom liegt darin, das die Schnittstelle /dev/random unter bestimmten Voraussetzungen blockieren kann, was bei der Schnittstelle /dev/urandom nicht der Fall ist:

Die Verwendung von /dev/random oder /dev/urandom erlaubt es ähnlich Zufallswerte zu erstellen wie mit der Funktion random.
=Beispiel= Um die Schnittstellen /dev/random und /dev/urandom in Free Pascal zu verwenden können wir folgenden code verwenden:

pascal
procedure RandomSeed;
var
  f : file of integer;
  i : integer;

begin
  i        := 0;
  filemode := 0;
  AssignFile(f, '/dev/urandom'); 
  reset (f,1);
  read (f,i);
  CloseFile (f);
  // belegen der Systemvariablen RandSeed mit der Zufallszahl
  RandSeed := i;
end;

Erklärung

Wie fast alles in Unix oder Unix ähnlichen Betriebssystemen, ist urandom eine Datei! So öffnen wir urandom als Datei und lesen eine Ganzzahl.\

Dann nehmen wir die Zufallszahl und übergeben diese der Systemvariablen RandSeed. Mit diesem Initialwert erstellt die Funktion random weitere Zufallszahlen. Ganz genauso wie Sie es mit der Funktion Randomize machen würde. Nur, das die Initialisierung vom Zufall abhängt und nicht aus der aktuellen Systemzeit des Computers ermittelt wird.\

=Siehe auch=


From the Free Pascal wiki, page "Dev random/de", as it stood on 2020-06-24 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 2, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.