.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2003, Andries E. Brouwer .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getpwent_r 3 "14 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم getpwent_r, fgetpwent_r \- الحصول على مدخل ملف كلمات السر بشكل قابل لإعادة الدخول .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint getpwent_r(\fPsize_t size; \fB struct passwd *restrict \fP\fIpwbuf\fP\fB,\fP \fB char \fP\fIbuf\fP\fB[restrict \fP\fIsize\fP\fB], size_t \fP\fIsize\fP\fB,\fP \fB struct passwd **restrict \fP\fIpwbufp\fP\fB);\fP \fBint fgetpwent_r(\fPsize_t size; \fB FILE *restrict \fP\fIstream\fP\fB, struct passwd *restrict \fP\fIpwbuf\fP\fB,\fP \fB char \fP\fIbuf\fP\fB[restrict \fP\fIsize\fP\fB], size_t \fP\fIsize\fP\fB,\fP \fB struct passwd **restrict \fP\fIpwbufp\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBgetpwent_r\fP()، .nf منذ glibc 2.19: _DEFAULT_SOURCE glibc 2.19 وما قبله: _BSD_SOURCE || _SVID_SOURCE .fi .P \fBfgetpwent_r\fP()، .nf منذ glibc 2.19: _DEFAULT_SOURCE في glibc 2.19 وما قبله: _SVID_SOURCE .fi .SH الوصف الدالتان \fBgetpwent_r\fP() و \fBfgetpwent_r\fP() هما النسختان القابلتان لإعادة الدخول من \fBgetpwent\fP(3) و \fBfgetpwent\fP(3). الأولى تقرأ مدخل passwd التالي من الدفق المُهيأ بواسطة \fBsetpwent\fP(3). الثانية تقرأ مدخل passwd التالي من \fIstream\fP. .P عُرف هيكل \fIpasswd\fP في \fI\fP كالتالي: .P .in +4n .EX struct passwd { char *pw_name; /* اسم المستخدم */ char *pw_passwd; /* كلمة سر المستخدم */ uid_t pw_uid; /* معرف المستخدم */ gid_t pw_gid; /* معرف المجموعة */ char *pw_gecos; /* معلومات المستخدم */ char *pw_dir; /* الدليل الرئيسي */ char *pw_shell; /* برنامج الصدفة */ }; .EE .in .P لمزيد من المعلومات حول حقول هذا الهيكل، راجع \fBpasswd\fP(5). .P الدوال غير القابلة لإعادة الدخول تُرجع مؤشرًا إلى تخزين ثابت، حيث يحتوي هذا التخزين الثابت على مؤشرات أخرى لاسم المستخدم، كلمة السر، حقل gecos، الدليل الرئيسي والصدفة. الدوال القابلة لإعادة الدخول الموصوفة هنا تُرجع كل ذلك في مخازن مؤقتة يقدمها المستدعي. أولاً هناك المخزن المؤقت \fIpwbuf\fP الذي يمكنه حمل \fIstruct\ passwd\fP. ثم المخزن المؤقت \fIbuf\fP بحجم \fIsize\fP الذي يمكنه حمل سلاسل محارف إضافية. نتيجة هذه الدوال، \fIstruct\ passwd\fP المقروء من الدفق، تُخزن في المخزن المؤقت المُقدم \fI*pwbuf\fP، ويُعاد مؤشر إلى هذا \fIstruct\ passwd\fP في \fI*pwbufp\fP. .SH "قيمة الإرجاع" عند النجاح، تُرجع هذه الدوال 0 ويكون \fI*pwbufp\fP مؤشرًا إلى \fIstruct\ passwd\fP. عند الخطأ، تُرجع هذه الدوال قيمة خطأ ويكون \fI*pwbufp\fP NULL. .SH الأخطاء .TP \fBENOENT\fP لا يوجد مزيد من المدخلات. .TP \fBERANGE\fP مساحة المخزن المؤقت (buffer) المزودة غير كافية. حاول ثانية بمخزن أكبر. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lb lb lbx l l l. الواجهة السمة القيمة T{ .na .nh \fBgetpwent_r\fP() T} سلامة الخيوط T{ .na .nh غير آمن للمسارات المتعددة (MT\-Unsafe) سباق:pwent locale T} T{ .na .nh \fBfgetpwent_r\fP() T} سلامة الخيوط MT\-Safe .TE .P في الجدول أعلاه، \fIpwent\fP في \fIrace:pwent\fP يعني أنه إذا استُخدمت أي من الدوال \fBsetpwent\fP()، \fBgetpwent\fP()، \fBendpwent\fP()، أو \fBgetpwent_r\fP() بالتوازي في خيوط مختلفة من برنامج، فقد تحدث سباقات بيانات. .SH الإصدارات أنظمة أخرى تستخدم النموذج الأولي .P .in +4n .EX struct passwd * getpwent_r(struct passwd *pwd, char buf[.size], int size); .EE .in .P أو، بشكل أفضل، .P .in +4n .EX int getpwent_r(struct passwd *pwd, char buf[.size], int size, FILE **pw_fp); .EE .in .SH المعايير لا شيء. .SH التاريخ أُنجزت هذه الدوال بأسلوب يشبه نسخة POSIX من دوال مثل \fBgetpwnam_r\fP(3). .SH ملاحظات الدالة \fBgetpwent_r\fP() ليست قابلة لإعادة الدخول حقًا لأنها تشارك موضع القراءة في الدفق مع جميع الخيوط الأخرى. .SH أمثلة .\" SRC BEGIN (getpwent_r.c) .EX #define _GNU_SOURCE #include #include #include #include \& #define BUFLEN 4096 \& int main(void) { struct passwd pw; struct passwd *pwp; char buf[BUFLEN]; int i; \& setpwent(); for (;;) { i = getpwent_r(&pw, buf, sizeof(buf), &pwp); if (i) break; printf("%s (%jd)\[rs]tHOME %s\[rs]tSHELL %s\[rs]n", pwp\->pw_name, (intmax_t) pwp\->pw_uid, pwp\->pw_dir, pwp\->pw_shell); } endpwent(); exit(EXIT_SUCCESS); } .EE .\" perhaps add error checking - should use strerror_r .\" #include .\" #include .\" if (i) { .\" if (i == ENOENT) .\" break; .\" printf("getpwent_r: %s", strerror(i)); .\" exit(EXIT_SUCCESS); .\" } .\" SRC END .SH "انظر أيضًا" \fBfgetpwent\fP(3)، \fBgetpw\fP(3)، \fBgetpwent\fP(3)، \fBgetpwnam\fP(3)، \fBgetpwuid\fP(3)، \fBputpwent\fP(3)، \fBpasswd\fP(5) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .