.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2002, Walter Harms .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-1.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH argz_add 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم argz_add, argz_add_sep, argz_append, argz_count, argz_create, argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, argz_replace, argz_stringify \- دوال لمعالجة قائمة argz .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBerror_t argz_add(char **restrict \fP\fIargz\fP\fB, size_t *restrict \fP\fIargz_len\fP\fB,\fP \fB const char *restrict \fP\fIstr\fP\fB);\fP .P \fBerror_t argz_add_sep(char **restrict \fP\fIargz\fP\fB, size_t *restrict \fP\fIargz_len\fP\fB,\fP \fB const char *restrict \fP\fIstr\fP\fB, int \fP\fIdelim\fP\fB);\fP .P \fBerror_t argz_append(char **restrict \fP\fIargz\fP\fB, size_t *restrict \fP\fIargz_len\fP\fB,\fP \fB const char *restrict \fP\fIbuf\fP\fB, size_t \fP\fIbuf_len\fP\fB);\fP .P \fBsize_t argz_count(const char *\fP\fIargz\fP\fB, size_t \fP\fIargz_len\fP\fB);\fP .P \fBerror_t argz_create(char *const \fP\fIargv\fP\fB[], char **restrict \fP\fIargz\fP\fB,\fP \fB size_t *restrict \fP\fIargz_len\fP\fB);\fP .P \fBerror_t argz_create_sep(const char *restrict \fP\fIstr\fP\fB, int \fP\fIsep\fP\fB,\fP \fB char **restrict \fP\fIargz\fP\fB, size_t *restrict \fP\fIargz_len\fP\fB);\fP .P \fBvoid argz_delete(char **restrict \fP\fIargz\fP\fB, size_t *restrict \fP\fIargz_len\fP\fB,\fP \fB char *restrict \fP\fIentry\fP\fB);\fP .P \fBvoid argz_extract(const char *restrict \fP\fIargz\fP\fB, size_t \fP\fIargz_len\fP\fB,\fP \fB char **restrict \fP\fIargv\fP\fB);\fP .P \fBerror_t argz_insert(char **restrict \fP\fIargz\fP\fB, size_t *restrict \fP\fIargz_len\fP\fB,\fP \fB char *restrict \fP\fIbefore\fP\fB, const char *restrict \fP\fIentry\fP\fB);\fP .P \fBchar *argz_next(const char *restrict \fP\fIargz\fP\fB, size_t \fP\fIargz_len\fP\fB,\fP \fB const char *restrict \fP\fIentry\fP\fB);\fP .P \fBerror_t argz_replace(char **restrict \fP\fIargz\fP\fB, size_t *restrict \fP\fIargz_len\fP\fB,\fP \fB const char *restrict \fP\fIstr\fP\fB, const char *restrict \fP\fIwith\fP\fB,\fP \fB unsigned int *restrict \fP\fIreplace_count\fP\fB);\fP .P \fBvoid argz_stringify(char *\fP\fIargz\fP\fB, size_t \fP\fIlen\fP\fB, int \fP\fIsep\fP\fB);\fP .fi .SH الوصف هذه الدوال خاصة بـ glibc. .P مُتجه argz هو مؤشر إلى مخزن محارف مع طول. التفسير المقصود لمخزن المحارف هو مصفوفة من السلاسل، حيث تُفصل السلاسل بواسطة بايتات فارغة (\[aq]\[rs]0\[aq]). إذا كان الطول غير صفري، يجب أن يكون آخر بايت في المخزن بايتًا فارغًا. .P هذه الدوال مخصصة لمعالجة متجهات argz. الزوج (NULL,0) هو مُتجه argz، وبالمقابل، متجهات argz ذات الطول 0 يجب أن يكون لها مؤشر فارغ. يُجرى تخصيص متجهات argz غير الفارغة باستخدام \fBmalloc\fP(3)، بحيث يمكن استخدام \fBfree\fP(3) للتخلص منها مرة أخرى. .P تضيف \fBargz_add\fP() السلسلة \fIstr\fP في نهاية المصفوفة \fI*argz\fP، وتُحدّث \fI*argz\fP و \fI*argz_len\fP. .P \fBargz_add_sep\fP() مماثلة، لكنها تقسم السلسلة \fIstr\fP إلى سلاسل فرعية مفصولة بالمحدد \fIdelim\fP. على سبيل المثال، قد يُستخدم هذا على مسار بحث UNIX مع المحدد \[aq]:\[aq]. .P تُلحق \fBargz_append\fP() مُتجه argz (\fIbuf\fP,\ \fIbuf_len\fP) بعد (\fI*argz\fP,\ \fI*argz_len\fP) وتُحدّث \fI*argz\fP و \fI*argz_len\fP. (وبالتالي، سيزداد \fI*argz_len\fP بمقدار \fIbuf_len\fP.) .P تحسب \fBargz_count\fP() عدد السلاسل، أي عدد البايتات الفارغة (\[aq]\[rs]0\[aq])، في (\fIargz\fP,\ \fIargz_len\fP). .P \fBargz_create\fP() يحول متجه وسائط بنمط UNIX \fIargv\fP، المنتهي بـ \fI(char\ *)\ 0\fP، إلى متجه argz (\fI*argz\fP، \fI*argz_len\fP). .P \fBargz_create_sep\fP() يحول السلسلة المنتهية بصفر \fIstr\fP إلى متجه argz (\fI*argz\fP، \fI*argz_len\fP) بتقسيمها عند كل ظهور للفاصل \fIsep\fP. .P \fBargz_delete\fP() يزيل السلسلة الفرعية المشار إليها بـ \fIentry\fP من متجه argz (\fI*argz\fP، \fI*argz_len\fP) ويُحدّث \fI*argz\fP و \fI*argz_len\fP. .P \fBargz_extract\fP() هو عكس \fBargz_create\fP(). يأخذ متجه argz (\fIargz\fP، \fIargz_len\fP) ويملأ المصفوفة التي تبدأ بـ \fIargv\fP بمؤشرات إلى السلاسل الفرعية، وصفر ختامي، لصنع متجه argv بنمط UNIX. يجب أن تحتوي المصفوفة \fIargv\fP على مساحة لـ \fIargz_count\fP(\fIargz\fP، \fIargz_len\fP) + 1 مؤشرًا. .P \fBargz_insert\fP() هو عكس \fBargz_delete\fP(). يُدرج الوسيط \fIentry\fP في الموضع \fIbefore\fP داخل متجه argz (\fI*argz\fP، \fI*argz_len\fP) ويُحدّث \fI*argz\fP و \fI*argz_len\fP. إذا كان \fIbefore\fP NULL، فسيُدرج \fIentry\fP في النهاية. .P \fBargz_next\fP() هي دالة للتنقل عبر متجه argz. إذا كان \fIentry\fP NULL، يُعاد الإدخال الأول. وإلا، يُعاد الإدخال التالي. تُعيد NULL إذا لم يكن هناك إدخال تالٍ. .P \fBargz_replace\fP() يستبدل كل ظهور لـ \fIstr\fP بـ \fIwith\fP، مع إعادة تخصيص argz حسب الحاجة. إذا كان \fIreplace_count\fP غير NULL، فسيُزاد \fI*replace_count\fP بعدد الاستبدالات. .P \fBargz_stringify\fP() هو عكس \fBargz_create_sep\fP(). يحول متجه argz إلى سلسلة عادية باستبدال كل البايتات الصفرية (\[aq]\[rs]0\[aq]) باستثناء الأخيرة بـ \fIsep\fP. .SH "قيمة الإرجاع" جميع دوال argz التي تقوم بتخصيص الذاكرة لها نوع إرجاع \fIerror_t\fP (نوع صحيح)، وتُعيد 0 للنجاح، و \fBENOMEM\fP إذا حدث خطأ تخصيص. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBargz_add\fP(), \fBargz_add_sep\fP(), \fBargz_append\fP(), \fBargz_count\fP(), \fBargz_create\fP(), \fBargz_create_sep\fP(), \fBargz_delete\fP(), \fBargz_extract\fP(), \fBargz_insert\fP(), \fBargz_next\fP(), \fBargz_replace\fP(), \fBargz_stringify\fP() T} سلامة الخيوط MT\-Safe .TE .SH المعايير GNU. .SH العلل متجهات argz بدون بايت صفر ختامي قد تؤدي إلى أخطاء تجزئة. .SH "انظر أيضًا" \fBenvz_add\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 .