الاسم
- Provided by: manpages-ar-dev (Version: 4.31.0-1)
- Source: manpages-l10n
- Report a bug
مكتبة سي المعيارية (libc، -lc)
#include <glob.h>
int glob(const char *restrict pattern, int flags,
typeof(int (const char *epath, int eerrno)) *errfunc,
glob_t *restrict pglob);
void globfree(glob_t *pglob);
الدالة glob() تبحث عن جميع أسماء المسارات المطابقة لـ pattern وفقًا للقواعد المستخدمة من قبل الصدفة (انظر glob(7)). لا يتم توسيع التلدة أو استبدال المعامل؛ إذا أردت هذه، استخدم wordexp(3).
الدالة globfree() تحرر التخزين المخصص ديناميكيًا من استدعاء سابق لـ glob().
نتائج استدعاء glob() تُخزن في البنية المشار إليها بواسطة pglob. هذه البنية من النوع glob_t (مُعلنة في <glob.h>) وتتضمن العناصر التالية المُعرفة بواسطة POSIX.2 (قد يكون هناك المزيد كإضافة):
typedef struct {
size_t gl_pathc; /* عدد المسارات المطابقة حتى الآن */
char **gl_pathv; /* قائمة أسماء المسارات المطابقة. */
size_t gl_offs; /* فتحات للحجز في gl_pathv. */
} glob_t;
النتائج تُخزن في تخزين مخصص ديناميكيًا.
المعامل flags يتكون من OR على مستوى البت لصفر أو أكثر من الثوابت الرمزية التالية، والتي تُعدل سلوك glob():
قد تتضمن flags أيضًا أيًا مما يلي، وهي إضافات GNU ولم تُعرف في POSIX.2:
إذا لم تكن errfunc NULL، فستُستدعى في حالة حدوث خطأ مع المعاملات epath، مؤشر إلى المسار الذي فشل، وeerrno، قيمة errno كما أُعيدت من أحد استدعاءات opendir(3) أو readdir(3) أو stat(2). إذا أعادت errfunc قيمة غير صفرية، أو إذا ضُبطت GLOB_ERR، فستنتهي الدالة glob() بعد استدعاء errfunc.
عند الإرجاع الناجح، يحتوي pglob->gl_pathc على عدد أسماء المسارات المطابقة ويحتوي pglob->gl_pathv على مؤشر إلى قائمة المؤشرات لأسماء المسارات المطابقة. تُنهى قائمة المؤشرات بمؤشر فارغ.
من الممكن استدعاء glob() عدة مرات. في هذه الحالة، يجب تعيين العلم GLOB_APPEND في flags في الاستدعاءات الثانية واللاحقة.
كإضافة لـ GNU، تُعيّن pglob->gl_flags إلى الأعلام المحددة، مع إجراء عملية أو مع GLOB_MAGCHAR إذا وُجدت أي محارف وصفية.
عند الإكمال بنجاح، تُرجع glob() صفرًا. القيم الأخرى الممكنة للإرجاع هي:
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
| الواجهة | السمة | القيمة |
| glob() | سلامة الخيوط | MT-Unsafe race:utent env sig:ALRM timer locale |
| globfree() | سلامة الخيوط | MT-Safe |
في الجدول أعلاه، يشير utent في race:utent إلى أنه إذا استُخدمت أي من الدوال setutent(3) أو getutent(3) أو endutent(3) بالتوازي في خيوط مختلفة من برنامج، فقد تحدث سباقات بيانات. تستدعي glob() تلك الدوال، لذا نستخدم race:utent لتذكير المستخدمين.
POSIX.1-2008.
POSIX.1-2001, POSIX.2.
عناصر الهيكل gl_pathc و gl_offs مُصرَّح بها كـ size_t في glibc 2.1، كما ينبغي وفقًا لـ POSIX.2، لكنها مُصرَّح بها كـ int في glibc 2.0.
قد تفشل الدالة glob() بسبب فشل استدعاءات دوال أساسية، مثل malloc(3) أو opendir(3). ستُخزِّن هذه الدوال رمز خطئها في errno.
مثال واحد للاستخدام هو الكود التالي، الذي يحاكي كتابة
ls -l *.c ../*.c
في الصدفة:
glob_t globbuf;
globbuf.gl_offs = 2;
glob("*.c", GLOB_DOOFFS, NULL, &globbuf);
glob("../*.c", GLOB_DOOFFS | GLOB_APPEND, NULL, &globbuf);
globbuf.gl_pathv[0] = "ls";
globbuf.gl_pathv[1] = "-l";
execvp("ls", &globbuf.gl_pathv[0]);
ls(1), sh(1), stat(2), exec(3), fnmatch(3), malloc(3), opendir(3), readdir(3), wordexp(3), glob(7)
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.