.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2008 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH random_r 3 "23. Juli 2024" "Linux man\-pages 6.12" .SH BEZEICHNUNG random_r, srandom_r, initstate_r, setstate_r \- Ablaufinvarianter Zufallszahlen\-Generator .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP,\ \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#include \fP .P \fBint random_r(struct random_data *restrict \fP\fIpuf\fP\fB,\fP \fB int32_t *restrict \fP\fIergebnis\fP\fB);\fP \fBint srandom_r(unsigned int \fP\fIzstart\fP\fB, struct random_data *\fP\fIpuf\fP\fB);\fP .P \fBint initstate_r(unsigned int \fP\fIzstart\fP\fB, char \fP\fIzustandpuf\fP\fB[restrict .\fP\fIzustandlän\fP\fB],\fP \fB size_t \fP\fIzustandlän\fP\fB, struct random_data *restrict \fP\fIpuf\fP\fB);\fP \fBint setstate_r(char *restrict \fP\fIzustandpuf\fP\fB,\fP \fB struct random_data *restrict \fP\fIpuf\fP\fB);\fP .fi .P .RS -4 Mit Glibc erforderliche Feature\-Test\-Makros (siehe \fBfeature_test_macros\fP(7)): .RE .P \fBrandom_r\fP(), \fBsrandom_r\fP(), \fBinitstate_r\fP(), \fBsetstate_r\fP(): .nf /* Glibc >= 2.19: */ _DEFAULT_SOURCE || /* Glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE .fi .SH BESCHREIBUNG Diese Funktionen sind die ablaufinvarianten Äquivalente der in \fBrandom\fP(3) beschriebenen Funktionen. Sie sind für die Verwendung in Multithread\-Programmen geeignet, wo jeder Thread eine unabhängige, reproduzierbare Zufallszahlensequenz erhalten muss. .P Die Funktion \fBrandom_r\fP() ist ähnlich \fBrandom\fP(3). Der Unterschied besteht darin, dass sie Zustandsinformationen im Argument, auf das \fIpuf\fP zeigt, anstatt von Zustandsinformationen in einer globalen Variablen verwendet. \fIpuf\fP muss vorab durch \fBinitstate_r\fP() initialisiert worden sein. Die erstellte Zufallszahl wird im Argument \fIergebnis\fP zurückgeliefert. .P Die Funktion \fBsrandom_r\fP() ist wie \fBsrandom\fP(3), außer dass sie den Zufallsstartwert für den Zufallszahlengenerator initialisiert, dessen Zustand in dem Objekt verwaltet wird, auf das \fIpuf\fP zeigt, das vorher durch \fBinitstate_r\fP() initialisiert werden muss, anstatt den Zufallsstartwert zu verwenden, der der globalen Zustandsvariablen zugeordnet ist. .P Die Funktion \fBinitstate_r\fP() ist wie \fBinitstate\fP(3), außer dass sie den Zustand in dem Objekt initialisiert, auf das \fIpuf\fP zeigt, anstatt die globale Zustandsvariable zu initialisieren. Bevor die Funktion aufgerufen wird, muss das Feld \fIbuf.state\fP auf NULL initialisiert werden. Die Funktion \fBinitstate_r\fP() zeichnet einen Zeiger auf das Argument \fIstatebuf\fP innerhalb der Struktur auf, auf die \fIpuf\fP zeigt. Daher sollte \fIstatebuf\fP nicht freigegeben werden, solange \fIpuf\fP noch verwandt wird. (Daher sollte \fIstatebuf\fP typischerweise als statische Variable oder auf dem Heap mittels \fBmalloc\fP(3) oder ähnlichem reserviert werden.) .P Die Funktion \fBsetstate_r\fP() ist wie \fBsetstate\fP(3), außer dass sie den Zustand in dem Objekt verändert, auf das \fIpuf\fP zeigt, anstatt die globale Zustandsvariable zu verändern. \fIzustand\fP muss zuerst mittels \fBinitstate_r\fP() oder dem vorherigen Aufruf von \fBsetstate_r\fP() initialisiert worden sein. .SH RÜCKGABEWERT Alle diese Funktionen liefern 0 im Erfolgsfall zurück. Im Fehlerfall wird \-1 zurückgeliefert, wobei \fIerrno\fP gesetzt wird, um den Fehler anzuzeigen. .SH FEHLER .TP \fBEINVAL\fP In \fBinitstate_r\fP() wurde ein Zustandsfeld von weniger als 8 byte festgelegt. .TP \fBEINVAL\fP Das Argument \fIzustandpuf\fP oder \fIpuf\fP von \fBsetstate_r\fP() war NULL. .TP \fBEINVAL\fP Das Argument \fIpuf\fP oder \fIergebnis\fP von \fBrandom_r\fP() war NULL. .SH ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .TS allbox; lbx lb lb l l l. Schnittstelle Attribut Wert T{ .na .nh \fBrandom_r\fP(), \fBsrandom_r\fP(), \fBinitstate_r\fP(), \fBsetstate_r\fP() T} Multithread\-Fähigkeit MT\-Sicher race:buf .TE .SH STANDARDS .\" These functions appear to be on Tru64, but don't seem to be on .\" Solaris, HP-UX, or FreeBSD. GNU. .SH FEHLER .\" FIXME . https://sourceware.org/bugzilla/show_bug.cgi?id=3662 Die Schnittstelle \fBinitstate_r\fP() ist unübersichtlich. Es erscheint, dass der Typ \fIrandom_data\fP undurchsichtig sein soll, aber die Implementation verlangt vom Benutzer, entweder das Feld \fIbuf.state\fP auf NULL zu initialisieren oder vor Aufruf die gesamte Struktur mit Nullen zu überschreiben. .SH "SIEHE AUCH" \fBdrand48\fP(3), \fBrand\fP(3), \fBrandom\fP(3) .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .