.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2008, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH random_r 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم random_r, srandom_r, initstate_r, setstate_r \- مولد أعداد عشوائية قابل لإعادة الدخول .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint random_r(struct random_data *restrict \fP\fIbuf\fP\fB,\fP \fB int32_t *restrict \fP\fIresult\fP\fB);\fP \fBint srandom_r(unsigned int \fP\fIseed\fP\fB, struct random_data *\fP\fIbuf\fP\fB);\fP .P \fBint initstate_r(unsigned int \fP\fIseed\fP\fB,\fP \fB char \fP\fIstatebuf\fP\fB[restrict .\fP\fIstatelen\fP\fB], size_t \fP\fIstatelen\fP\fB,\fP \fB struct random_data *restrict \fP\fIbuf\fP\fB);\fP \fBint setstate_r(char *restrict \fP\fIstatebuf\fP\fB,\fP \fB struct random_data *restrict \fP\fIbuf\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \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 الوصف هذه الدوال هي المكافئات القابلة لإعادة الدخول للدوال الموصوفة في \fBrandom\fP(3). وهي مناسبة للاستخدام في البرامج متعددة الخيوط حيث يحتاج كل خيط إلى الحصول على سلسلة مستقلة وقابلة للتكرار من الأعداد العشوائية. .P دالة \fBrandom_r\fP() تشبه \fBrandom\fP(3)، باستثناء أنها بدلاً من استخدام معلومات الحالة المحفوظة في متغير عام، تستخدم معلومات الحالة في الوسيط المشار إليه بواسطة \fIbuf\fP، والذي يجب أن يكون قد تمت تهيئته مسبقاً بواسطة \fBinitstate_r\fP(). يُعاد العدد العشوائي المُولَّد في الوسيط \fIresult\fP. .P دالة \fBsrandom_r\fP() تشبه \fBsrandom\fP(3)، باستثناء أنها تهيئ البذرة لمولد الأعداد العشوائية الذي تُحفظ حالته في الكائن المشار إليه بواسطة \fIbuf\fP، والذي يجب أن يكون قد تمت تهيئته مسبقاً بواسطة \fBinitstate_r\fP()، بدلاً من البذرة المرتبطة بمتغير الحالة العام. .P دالة \fBinitstate_r\fP() تشبه \fBinitstate\fP(3)، باستثناء أنها تهيئ الحالة في الكائن المشار إليه بواسطة \fIbuf\fP، بدلاً من تهيئة متغير الحالة العام. قبل استدعاء هذه الدالة، يجب تهيئة الحقل \fIbuf.state\fP إلى NULL. تسجل دالة \fBinitstate_r\fP() مؤشراً إلى الوسيط \fIstatebuf\fP داخل البنية المشار إليها بواسطة \fIbuf\fP. وبالتالي، لا ينبغي إلغاء تخصيص \fIstatebuf\fP طالما أن \fIbuf\fP لا يزال قيد الاستخدام. (لذا، ينبغي عادةً تخصيص \fIstatebuf\fP كمتغير ثابت، أو تخصيصه على الكومة باستخدام \fBmalloc\fP(3) أو ما شابه ذلك.) .P دالة \fBsetstate_r\fP() تشبه \fBsetstate\fP(3)، باستثناء أنها تُعدِّل الحالة في الكائن المشار إليه بواسطة \fIbuf\fP، بدلاً من تعديل متغير الحالة العام. يجب أن يكون \fIstate\fP قد تمت تهيئته أولاً باستخدام \fBinitstate_r\fP() أو أن يكون نتيجة استدعاء سابق لـ \fBsetstate_r\fP(). .SH "قيمة الإرجاع" تُعيد جميع هذه الدوال 0 عند النجاح. عند الخطأ، يُعاد \-1، مع ضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEINVAL\fP تم تحديد مصفوفة حالة أقل من 8 بايت لـ \fBinitstate_r\fP(). .TP \fBEINVAL\fP كان الوسيط \fIstatebuf\fP أو \fIbuf\fP لـ \fBsetstate_r\fP() NULL. .TP \fBEINVAL\fP كان الوسيط \fIbuf\fP أو \fIresult\fP لـ \fBrandom_r\fP() NULL. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBrandom_r\fP(), \fBsrandom_r\fP(), \fBinitstate_r\fP(), \fBsetstate_r\fP() T} سلامة الخيوط MT\-Safe race:buf .TE .SH المعايير .\" These functions appear to be on Tru64, but don't seem to be on .\" Solaris, HP-UX, or FreeBSD. GNU. .SH العلل .\" FIXME . https://sourceware.org/bugzilla/show_bug.cgi?id=3662 واجهة \fBinitstate_r\fP() مُربكة. يبدو أن النوع \fIrandom_data\fP مُصمم ليكون معتماً، لكن التنفيذ يتطلب من المستخدم إما تهيئة الحقل \fIbuf.state\fP إلى NULL أو تصفير البنية بأكملها قبل الاستدعاء. .SH "انظر أيضًا" \fBdrand48\fP(3), \fBrand\fP(3), \fBrandom\fP(3) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .