.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2003, Andries E. Brouwer .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH wordexp 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم wordexp, wordfree \- أداء توسيع الكلمات مثل قشرة posix .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint wordexp(const char *restrict \fP\fIs\fP\fB, wordexp_t *restrict \fP\fIp\fP\fB, int \fP\fIflags\fP\fB);\fP \fBvoid wordfree(wordexp_t *\fP\fIp\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBwordexp\fP()، \fBwordfree\fP(): .nf _XOPEN_SOURCE .fi .SH الوصف الدالة \fBwordexp\fP() تؤدي توسيعًا شبيهًا بالقشرة لسلسلة المحارف \fIs\fP وتُعيد النتيجة في البنية المشار إليها بواسطة \fIp\fP. نوع البيانات \fIwordexp_t\fP هو بنية تحتوي على الأقل على الحقول \fIwe_wordc\fP و\fIwe_wordv\fP و\fIwe_offs\fP. الحقل \fIwe_wordc\fP هو من نوع \fIsize_t\fP يُعطي عدد الكلمات في توسيع \fIs\fP. الحقل \fIwe_wordv\fP هو \fIchar\ **\fP يُشير إلى مصفوفة الكلمات التي وُجدت. الحقل \fIwe_offs\fP من نوع \fIsize_t\fP يُستخدم أحيانًا (اعتمادًا على \fIflags\fP، انظر أدناه) للإشارة إلى عدد العناصر الأولية في مصفوفة \fIwe_wordv\fP التي ينبغي ملؤها بقيم NULL. .P الدالة \fBwordfree\fP() تُحرر الذاكرة المُخصصة مرة أخرى. بشكل أدق، لا تُحرر وسيطها، بل تُحرر المصفوفة \fIwe_wordv\fP وسلاسل المحارف التي تُشير إليها. .SS "وسيطة سلسلة المحارف" بما أن التوسيع هو نفس التوسيع بواسطة القشرة (انظر \fBsh\fP(1)) لمعاملات الأمر، فلا يجب أن تحتوي سلسلة المحارف \fIs\fP على محارف غير قانونية في معاملات أوامر القشرة. على وجه الخصوص، يجب ألا يكون هناك أي سطر جديد غير مُفلت أو محارف |، &، ;، <، >، (، )، {، } خارج سياق استبدال أمر أو استبدال معامل. .P إذا احتوت الوسيطة \fIs\fP على كلمة تبدأ بحرف تعليق غير مُقتبس #، فمن غير المُحدد ما إذا كانت تلك الكلمة وجميع الكلمات التالية تُتجاهل، أو يُعامل # كحرف غير تعليق. .SS التوسيع يتكون التوسيع المُنجز من المراحل التالية: توسيع التلدة (استبدال \[ti]user بدليل المستخدم الرئيس)، استبدال المتغير (استبدال $FOO بقيمة متغير البيئة FOO)، استبدال الأمر (استبدال $(command) أو \`command\` بمخرجات الأمر)، التوسيع الحسابي، تقسيم الحقول، توسيع أحرف البدل، إزالة الاقتباس. .P نتيجة توسيع المعاملات الخاصة ($@، $*، $#، $?، $\-، $$، $!، $0) غير مُحددة. .P تقسيم الحقول يُنجز باستخدام متغير البيئة $IFS. إذا لم يُضبط، ففواصل الحقول هي المسافة، والتبويب، والسطر الجديد. .SS "مصفوفة المخرجات" المصفوفة \fIwe_wordv\fP تحتوي على الكلمات التي وُجدت، متبوعة بقيمة NULL. .SS "معامل العلامات (flags)" وسيطة \fIflag\fP هي OR شامل على مستوى البت للقيم التالية: .TP \fBWRDE_APPEND\fP ألحق الكلمات التي وُجدت إلى المصفوفة الناتجة من استدعاء سابق. .TP \fBWRDE_DOOFFS\fP أدرج \fIwe_offs\fP من القيم NULL الأولية في المصفوفة \fIwe_wordv\fP. (لا تُحسب هذه في \fIwe_wordc\fP المُرجَعة.) .TP \fBWRDE_NOCMD\fP لا تُجرِ استبدال الأوامر. .TP \fBWRDE_REUSE\fP المُعامل \fIp\fP نتج عن استدعاء سابق لـ \fBwordexp\fP()، ولم يُستدعَ \fBwordfree\fP(). أعد استخدام التخزين المُخصَّص. .TP \fBWRDE_SHOWERR\fP عادةً أثناء استبدال الأوامر، يُعاد توجيه \fIstderr\fP إلى \fI/dev/null\fP. تُحدد هذه العَلَمة أن \fIstderr\fP لا يُعاد توجيهه. .TP \fBWRDE_UNDEF\fP اعتبره خطأً إذا وُسِّع متغير شل غير مُعرَّف. .SH "قيمة الإرجاع" عند النجاح، تُرجع \fBwordexp\fP() 0. عند الفشل، تُرجع \fBwordexp\fP() إحدى القيم غير الصفرية التالية: .TP \fBWRDE_BADCHAR\fP ظهور غير قانوني لسطر جديد أو أحد الرموز |, &, ;, <, >, (, ), {, }. .TP \fBWRDE_BADVAL\fP تمت الإشارة إلى متغير شل غير مُعرَّف، وأخبرتنا العَلَمة \fBWRDE_UNDEF\fP باعتبار هذا خطأً. .TP \fBWRDE_CMDSUB\fP طُلب استبدال الأوامر، لكن العَلَمة \fBWRDE_NOCMD\fP أخبرتنا باعتبار هذا خطأً. .TP \fBWRDE_NOSPACE\fP نفدت الذاكرة. .TP \fBWRDE_SYNTAX\fP خطأ في نحو الشل، مثل أقواس غير متوازنة أو علامات اقتباس غير متطابقة. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lb lb lbx l l l. الواجهة السمة القيمة T{ .na .nh \fBwordexp\fP() T} سلامة الخيوط T{ .na .nh MT\-Unsafe race:utent const:env env sig:ALRM timer locale T} T{ .na .nh \fBwordfree\fP() T} سلامة الخيوط MT\-Safe .TE .P في الجدول أعلاه، يشير \fIutent\fP في \fIrace:utent\fP إلى أنه إذا استُخدمت أي من الدوال \fBsetutent\fP(3) أو \fBgetutent\fP(3) أو \fBendutent\fP(3) بالتوازي في خيوط مختلفة من برنامج، فقد تحدث سباقات بيانات. تستدعي \fBwordexp\fP() تلك الدوال، لذا نستخدم race:utent لتذكير المستخدمين. .SH المعايير POSIX.1\-2008. .SH التاريخ POSIX.1\-2001. glibc 2.1. .SH أمثلة مخرج البرنامج المثالي التالي يقارب مخرج "ls [a\-c]*.c". .P .\" SRC BEGIN (wordexp.c) .EX #include #include #include \& int main(void) { wordexp_t p; char **w; \& wordexp("[a\-c]*.c", &p, 0); w = p.we_wordv; for (size_t i = 0; i < p.we_wordc; i++) printf("%s\[rs]n", w[i]); wordfree(&p); exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "انظر أيضًا" \fBfnmatch\fP(3), \fBglob\fP(3) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .