Scroll to navigation

getgrent(3) Library Functions Manual 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).)

الأخطاء

الخدمة غير متاحة مؤقتًا؛ حاول مرة أخرى لاحقًا. بالنسبة لواجهات NSS الخلفية في glibc، يشير هذا إلى خطأ مؤقت في التواصل مع الواجهة الخلفية. قد يصحح الخطأ نفسه؛ يُقترح إعادة المحاولة لاحقًا.
اُلتُقطت إشارة؛ انظر signal(7).
خطأ إدخال/إخراج.
وُصل إلى الحد الأقصى لواصفات الملفات المفتوحة لكل عملية.
وُصل إلى الحد الأقصى لإجمالي عدد الملفات المفتوحة على مستوى النظام.
لا يمكن العثور على ملف إدخال ضروري. بالنسبة لواجهات NSS الخلفية في glibc، يشير هذا إلى أن الواجهة الخلفية لم تُضبط بشكل صحيح.
ذاكرة غير كافية لتخصيص بنية group.
مساحة المخزن المؤقت المقدمة غير كافية.

الملفات

/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 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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

8 فبراير 2026 صفحات دليل لينكس 6.18