getgrent(3)

الاسم
getgrent, setgrent, endgrent - الحصول على مدخل ملف المجموعة

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

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

struct group *getgrent(void);

void setgrent(void);
void endgrent(void);

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

setgrent():
    _XOPEN_SOURCE >= 500
        || /* glibc >= 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

getgrent(), endgrent():
    منذ glibc 2.22:
        _XOPEN_SOURCE >= 500 || _DEFAULT_SOURCE
    glibc 2.21 وما قبلها
        _XOPEN_SOURCE >= 500
            || /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
            || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

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

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

تُستخدم الدالة endgrent() لإغلاق قاعدة بيانات المجموعة بعد تنفيذ جميع المعالجة.

عُرف هيكل group في <grp.h> كالتالي:

    struct group {
        char   *gr_name;        /* اسم المجموعة */
        char   *gr_passwd;      /* كلمة سر المجموعة */
        gid_t   gr_gid;         /* معرف المجموعة */
        char  **gr_mem;         /* مصفوفة منتهية بـ NULL من المؤشرات
                                   إلى أسماء أعضاء المجموعة */
    };

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

قيمة الإرجاع
ترجع الدالة getgrent() مؤشرًا إلى بنية group، أو NULL إذا لم يكن هناك المزيد من المدخلات أو حدث خطأ.

عند حدوث خطأ، قد يُضبط errno. إذا أراد المرء التحقق من errno بعد الاستدعاء، فيجب ضبطه على الصفر قبل الاستدعاء.

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

الأخطاء

EAGAIN
    الخدمة غير متاحة مؤقتًا؛ حاول مرة أخرى لاحقًا. بالنسبة لواجهات NSS الخلفية في glibc، يشير هذا إلى خطأ مؤقت في التواصل مع الواجهة الخلفية. قد يصحح الخطأ نفسه؛ يُقترح إعادة المحاولة لاحقًا.

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

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

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

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

ENOENT
    لا يمكن العثور على ملف إدخال ضروري. بالنسبة لواجهات NSS الخلفية في glibc، يشير هذا إلى أن الواجهة الخلفية لم تُضبط بشكل صحيح.

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

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

الملفات

/etc/group
    ملف قاعدة بيانات المجموعات المحلية

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
getgrent() | سلامة الخيوط | MT-Unsafe race:grent race:grentbuf locale
setgrent(), endgrent() | سلامة الخيوط | غير آمن للمسارات المتعددة (MT-Unsafe) سباق:grent locale

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

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

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

انظر أيضًا
fgetgrent(3), getgrent_r(3), getgrgid(3), getgrnam(3), getgrouplist(3), putgrent(3), group(5)

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

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

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