getpwent(3)

الاسم
getpwent, setpwent, endpwent - الحصول على مدخل ملف كلمة السر

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <sys/types.h>
#include <pwd.h>

struct passwd *getpwent(void);
void setpwent(void);
void endpwent(void);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

getpwent()، setpwent()، endpwent():
    _XOPEN_SOURCE >= 500
        || /* glibc >= 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

الوصف
الدالة getpwent() تُرجع مؤشرًا إلى بنية تحتوي على الحقول المفصولة لسجل من قاعدة بيانات كلمة السر (مثل ملف كلمة السر المحلي /etc/passwd، NIS، وLDAP). في المرة الأولى التي تُستدعى فيها getpwent()، تُرجع المدخل الأول؛ وبعد ذلك، تُرجع المدخلات المتعاقبة.

الدالة setpwent() تُعيد التوجيه إلى بداية قاعدة بيانات كلمة السر.

الدالة endpwent() تُستخدم لإغلاق قاعدة بيانات كلمة السر بعد إجراء كل المعالجة.

عُرف هيكل passwd في <pwd.h> كالتالي:

    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;      /* برنامج الصدفة */
    };

عند تمكين كلمات سر shadow(5) (وهو المبدئي في العديد من تثبيتات GNU/Linux) فإن محتوى pw_passwd عادةً لا يكون مفيدًا جدًا. في هذه الحالة، تُخزَّن معظم كلمات السر في ملف منفصل.

قد يكون المتغير pw_shell فارغًا، وفي هذه الحالة سينفذ النظام الصدفة المبدئية (/bin/sh) للمستخدم.

لمزيد من المعلومات حول حقول هذا الهيكل، راجع passwd(5).

قيمة الإرجاع
الدالة getpwent() تُرجع مؤشرًا إلى بنية passwd، أو NULL إذا لم يكن هناك المزيد من المدخلات أو حدث خطأ. إذا حدث خطأ، يُضبط errno للإشارة إلى الخطأ. إذا أراد المرء التحقق من errno بعد الاستدعاء، يجب ضبطه على الصفر قبل الاستدعاء.

قد تشير القيمة المُرجعة إلى منطقة ثابتة، وقد تُستبدل باستدعاءات لاحقة لـ getpwent()، getpwnam(3)، أو getpwuid(3). (لا تُمرر المؤشر المُعاد إلى free(3).)

الأخطاء

EINTR
    اُلتُقطت إشارة؛ انظر signal(7).

EIO خطأ إدخال/إخراج.

EMFILE
    وُصل إلى الحد الأقصى لواصفات الملفات المفتوحة لكل عملية.

ENFILE
    وُصل إلى الحد الأقصى لإجمالي عدد الملفات المفتوحة على مستوى النظام.

ENOMEM
    ذاكرة غير كافية لتخصيص بنية passwd.

ERANGE
    مساحة المخزن المؤقت المقدمة غير كافية.

الملفات

/etc/passwd
    ملف قاعدة بيانات كلمات السر المحلية

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
getpwent() | سلامة الخيوط | MT-Unsafe race:pwent race:pwentbuf locale
setpwent()، endpwent() | سلامة الخيوط | غير آمن للمسارات المتعددة (MT-Unsafe) سباق:pwent locale

في الجدول أعلاه، pwent في race:pwent يُشير إلى أنه إذا استُخدمت أي من الدوال setpwent()، getpwent()، أو endpwent() بالتوازي في خيوط مختلفة من برنامج، فقد تحدث سباقات بيانات.

الإصدارات
لم يُحدد حقل pw_gecos في POSIX، ولكنه موجود في معظم التنفيذات.

المعايير
POSIX.1-2008.

التاريخ
POSIX.1-2001، SVr4، 4.3BSD.

انظر أيضًا
fgetpwent(3)، getpw(3)، getpwent_r(3)، getpwnam(3)، getpwuid(3)، putpwent(3)، shadow(5)، passwd(5)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.