.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993, Thomas Koenig .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH glob 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم glob, globfree \- إيجاد أسماء مسارات تطابق نمطًا، تحرير الذاكرة من glob() .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint glob(const char *restrict \fP\fIpattern\fP\fB, int \fP\fIflags\fP\fB,\fP \fB typeof(int (const char *\fP\fIepath\fP\fB, int \fP\fIeerrno\fP\fB)) *\fP\fIerrfunc\fP\fB,\fP \fB glob_t *restrict \fP\fIpglob\fP\fB);\fP \fBvoid globfree(glob_t *\fP\fIpglob\fP\fB);\fP .fi .SH الوصف الدالة \fBglob\fP() تبحث عن جميع أسماء المسارات المطابقة لـ \fIpattern\fP وفقًا للقواعد المستخدمة من قبل الصدفة (انظر \fBglob\fP(7)). لا يتم توسيع التلدة أو استبدال المعامل؛ إذا أردت هذه، استخدم \fBwordexp\fP(3). .P الدالة \fBglobfree\fP() تحرر التخزين المخصص ديناميكيًا من استدعاء سابق لـ \fBglob\fP(). .P نتائج استدعاء \fBglob\fP() تُخزن في البنية المشار إليها بواسطة \fIpglob\fP. هذه البنية من النوع \fIglob_t\fP (مُعلنة في \fI\fP) وتتضمن العناصر التالية المُعرفة بواسطة POSIX.2 (قد يكون هناك المزيد كإضافة): .P .in +4n .EX typedef struct { size_t gl_pathc; /* عدد المسارات المطابقة حتى الآن */ char **gl_pathv; /* قائمة أسماء المسارات المطابقة. */ size_t gl_offs; /* فتحات للحجز في \f[I]gl_pathv\fR. */ } glob_t; .EE .in .P النتائج تُخزن في تخزين مخصص ديناميكيًا. .P المعامل \fIflags\fP يتكون من OR على مستوى البت لصفر أو أكثر من الثوابت الرمزية التالية، والتي تُعدل سلوك \fBglob\fP(): .TP \fBGLOB_ERR\fP الإرجاع عند خطأ قراءة (لأن دليلاً ليس لديه إذن قراءة، على سبيل المثال). مبدئيًا، \fBglob\fP() تحاول الاستمرار رغم الأخطاء، قارئةً جميع الأدلة التي تستطيع. .TP \fBGLOB_MARK\fP إلحاق شرطة مائلة لكل مسار يتوافق مع دليل. .TP \fBGLOB_NOSORT\fP لا تُرتب أسماء المسارات المُرجعة. السبب الوحيد لفعل ذلك هو توفير وقت المعالجة. مبدئيًا، أسماء المسارات المُرجعة تُرتب. .TP \fBGLOB_DOOFFS\fP حجز \fIpglob\->gl_offs\fP فتحة في بداية قائمة السلاسل المحارف في \fIpglob\->pathv\fP. الفتحات المحجوزة تحتوي على مؤشرات فارغة. .TP \fBGLOB_NOCHECK\fP إذا لم يطابق أي نمط، إرجاع النمط الأصلي. مبدئيًا، \fBglob\fP() تُرجع \fBGLOB_NOMATCH\fP إذا لم تكن هناك مطابقات. .TP \fBGLOB_APPEND\fP ألحق نتائج هذه الاستدعاء بمتجه النتائج التي أرجعها استدعاء سابق للدالة \fBglob\fP(). لا تضبط هذه العلامة في أول استدعاء للدالة \fBglob\fP(). .TP \fBGLOB_NOESCAPE\fP لا تسمح باستخدام الخط المائل العكسي (\[aq]\[rs]\[aq]) كمحرف هروب. عادة، يُستخدم الخط المائل العكسي لعزل المحرف التالي، مما يوفر آلية لإيقاف المعنى الخاص للمحارف الوصفية. .P قد تتضمن \fIflags\fP أيضًا أيًا مما يلي، وهي إضافات GNU ولم تُعرف في POSIX.2: .TP \fBGLOB_PERIOD\fP اسمح للمحارف الوصفية بمطابقة النقطة البادئة. مبدئيًا، لا يمكن للمحارف الوصفية مطابقة النقطة البادئة. .TP \fBGLOB_ALTDIRFUNC\fP استخدم دوالًا بديلة \fIpglob\->gl_closedir\fP و\fIpglob\->gl_readdir\fP و\fIpglob\->gl_opendir\fP و\fIpglob\->gl_lstat\fP و\fIpglob\->gl_stat\fP للوصول إلى نظام الملفات بدلًا من دوال المكتبة العادية. .TP \fBGLOB_BRACE\fP وسّع تعابير الأقواس المعقوفة بنمط \fBcsh\fP(1) من الشكل \fB{a,b}\fP. يمكن تتداخل تعابير الأقواس المعقوفة. وهكذا، على سبيل المثال، تحديد النمط "{foo/{,cat,dog},bar}" سيعيد نفس نتائج أربع استدعاءات منفصلة للدالة \fBglob\fP() باستخدام السلاسل: "foo/" و"foo/cat" و"foo/dog" و"bar". .TP \fBGLOB_NOMAGIC\fP إذا لم يحتوي النمط على محارف وصفية، فيجب إعادته كالكلمة المطابقة الوحيدة، حتى لو لم يوجد ملف بهذا الاسم. .TP \fBGLOB_TILDE\fP نفّذ توسيع التلدة. إذا كانت التلدة (\[aq]\[ti]\[aq]) هي المحرف الوحيد في النمط، أو تبعتها تلدة أولية مباشرة بشرطة مائلة (\[aq]/\[aq])، فسيُستبدل دليل المستخدم الرئيسي للمتصل بالتلدة. إذا تبعَت تلدة أولية اسم مستخدم (مثل "\[ti]andrea/bin")، فستُستبدل التلدة واسم المستخدم بدليل المستخدم الرئيسي لذلك المستخدم. إذا كان اسم المستخدم غير صالح، أو تعذر تحديد دليل المستخدم الرئيسي، فلن يُجرَ أي استبدال. .TP \fBGLOB_TILDE_CHECK\fP يوفر هذا سلوكًا مشابهًا لسلوك \fBGLOB_TILDE\fP. الفرق هو أنه إذا كان اسم المستخدم غير صالح، أو تعذر تحديد دليل المستخدم الرئيسي، فبدلًا من استخدام النمط نفسه كاسم، تُرجع الدالة \fBglob\fP() القيمة \fBGLOB_NOMATCH\fP للإشارة إلى خطأ. .TP \fBGLOB_ONLYDIR\fP هذا \fIتلميح\fP للدالة \fBglob\fP() بأن المتصل مهتم فقط بالأدلة التي تطابق النمط. إذا استطاع التنفيذ تحديد معلومات نوع الملف بسهولة، فلن تُعاد الملفات غير الدليلية إلى المتصل. ومع ذلك، يجب على المتصل التحقق من أن الملفات المُعادة هي أدلة. (الغرض من هذه العلامة هو فقط تحسين الأداء عندما يكون المتصل مهتمًا بالأدلة فقط.) .P إذا لم تكن \fIerrfunc\fP NULL، فستُستدعى في حالة حدوث خطأ مع المعاملات \fIepath\fP، مؤشر إلى المسار الذي فشل، و\fIeerrno\fP، قيمة \fIerrno\fP كما أُعيدت من أحد استدعاءات \fBopendir\fP(3) أو \fBreaddir\fP(3) أو \fBstat\fP(2). إذا أعادت \fIerrfunc\fP قيمة غير صفرية، أو إذا ضُبطت \fBGLOB_ERR\fP، فستنتهي الدالة \fBglob\fP() بعد استدعاء \fIerrfunc\fP. .P عند الإرجاع الناجح، يحتوي \fIpglob\->gl_pathc\fP على عدد أسماء المسارات المطابقة ويحتوي \fIpglob\->gl_pathv\fP على مؤشر إلى قائمة المؤشرات لأسماء المسارات المطابقة. تُنهى قائمة المؤشرات بمؤشر فارغ. .P من الممكن استدعاء \fBglob\fP() عدة مرات. في هذه الحالة، يجب تعيين العلم \fBGLOB_APPEND\fP في \fIflags\fP في الاستدعاءات الثانية واللاحقة. .P كإضافة لـ GNU، تُعيّن \fIpglob\->gl_flags\fP إلى الأعلام المحددة، مع إجراء عملية \fBأو\fP مع \fBGLOB_MAGCHAR\fP إذا وُجدت أي محارف وصفية. .SH "قيمة الإرجاع" عند الإكمال بنجاح، تُرجع \fBglob\fP() صفرًا. القيم الأخرى الممكنة للإرجاع هي: .TP \fBGLOB_NOSPACE\fP لنفاد الذاكرة، .TP \fBGLOB_ABORTED\fP لخطأ في القراءة، و .TP \fBGLOB_NOMATCH\fP لعدم وجود تطابقات. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lb lb lbx l l l. الواجهة السمة القيمة T{ .na .nh \fBglob\fP() T} سلامة الخيوط T{ .na .nh MT\-Unsafe race:utent env sig:ALRM timer locale T} T{ .na .nh \fBglobfree\fP() T} سلامة الخيوط MT\-Safe .TE .P في الجدول أعلاه، يشير \fIutent\fP في \fIrace:utent\fP إلى أنه إذا استُخدمت أي من الدوال \fBsetutent\fP(3) أو \fBgetutent\fP(3) أو \fBendutent\fP(3) بالتوازي في خيوط مختلفة من برنامج، فقد تحدث سباقات بيانات. تستدعي \fBglob\fP() تلك الدوال، لذا نستخدم race:utent لتذكير المستخدمين. .SH المعايير POSIX.1\-2008. .SH التاريخ POSIX.1\-2001, POSIX.2. .SH ملاحظات عناصر الهيكل \fIgl_pathc\fP و \fIgl_offs\fP مُصرَّح بها كـ \fIsize_t\fP في glibc 2.1، كما ينبغي وفقًا لـ POSIX.2، لكنها مُصرَّح بها كـ \fIint\fP في glibc 2.0. .SH العلل قد تفشل الدالة \fBglob\fP() بسبب فشل استدعاءات دوال أساسية، مثل \fBmalloc\fP(3) أو \fBopendir\fP(3). ستُخزِّن هذه الدوال رمز خطئها في \fIerrno\fP. .SH أمثلة مثال واحد للاستخدام هو الكود التالي، الذي يحاكي كتابة .P .in +4n .EX ls \-l *.c ../*.c .EE .in .P في الصدفة: .P .in +4n .EX 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]); .EE .in .SH "انظر أيضًا" \fBls\fP(1), \fBsh\fP(1), \fBstat\fP(2), \fBexec\fP(3), \fBfnmatch\fP(3), \fBmalloc\fP(3), \fBopendir\fP(3), \fBreaddir\fP(3), \fBwordexp\fP(3), \fBglob\fP(7) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .