.\" -*- 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 envz_add 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip \- دعم سلاسل محارف البيئة .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBerror_t envz_add(char **restrict \fP\fIenvz\fP\fB, size_t *restrict \fP\fIenvz_len\fP\fB,\fP \fB const char *restrict \fP\fIname\fP\fB, const char *restrict \fP\fIvalue\fP\fB);\fP .P \fBchar *envz_entry(const char *restrict \fP\fIenvz\fP\fB, size_t \fP\fIenvz_len\fP\fB,\fP \fB const char *restrict \fP\fIname\fP\fB);\fP .P \fBchar *envz_get(const char *restrict \fP\fIenvz\fP\fB, size_t \fP\fIenvz_len\fP\fB,\fP \fB const char *restrict \fP\fIname\fP\fB);\fP .P \fBerror_t envz_merge(char **restrict \fP\fIenvz\fP\fB, size_t *restrict \fP\fIenvz_len\fP\fB,\fP \fB const char *restrict \fP\fIenvz2\fP\fB, size_t \fP\fIenvz2_len\fP\fB,\fP \fB int \fP\fIoverride\fP\fB);\fP .P \fBvoid envz_remove(char **restrict \fP\fIenvz\fP\fB, size_t *restrict \fP\fIenvz_len\fP\fB,\fP \fB const char *restrict \fP\fIname\fP\fB);\fP .P \fBvoid envz_strip(char **restrict \fP\fIenvz\fP\fB, size_t *restrict \fP\fIenvz_len\fP\fB);\fP .fi .SH الوصف هذه الدوال خاصة بـ glibc. .P مُتجه argz هو مؤشر إلى مخزن محارف مع طول، انظر \fBargz_add\fP(3). مُتجه envz هو مُتجه argz خاص، وهو الذي تكون فيه السلاسل على شكل "name=value". كل شيء بعد أول \[aq]=\[aq] يُعتبر القيمة. إذا لم يكن هناك \[aq]=\[aq]، تُؤخذ القيمة على أنها NULL. (بينما القيمة في حالة \[aq]=\[aq] لاحقة هي السلسلة الفارغة "".) .P هذه الدوال لمعالجة مُتجهات envz. .P \fBenvz_add\fP() تُضيف السلسلة "\fIname\fP=\fIvalue\fP" (في حالة كانت \fIvalue\fP غير NULL) أو "\fIname\fP" (في حالة كانت \fIvalue\fP NULL) إلى مُتجه envz (\fI*envz\fP,\ \fI*envz_len\fP) وتُحدّث \fI*envz\fP و \fI*envz_len\fP. إذا وُجد إدخال بنفس \fIname\fP، يُزال. .P \fBenvz_entry\fP() تبحث عن \fIname\fP في مُتجه envz (\fIenvz\fP,\ \fIenvz_len\fP) وتُعيد الإدخال إذا وُجد، أو NULL إذا لم يُوجد. .P \fBenvz_get\fP() تبحث عن \fIname\fP في مُتجه envz (\fIenvz\fP,\ \fIenvz_len\fP) وتُعيد القيمة إذا وُجدت، أو NULL إذا لم تُوجد. (لاحظ أن القيمة يمكن أن تكون NULL أيضًا، أي عندما يكون هناك إدخال لـ \fIname\fP بدون علامة \[aq]=\[aq].) .P \fBenvz_merge\fP() تُضيف كل إدخال في \fIenvz2\fP إلى \fI*envz\fP، كما لو كان مع \fBenvz_add\fP(). إذا كان \fIoverride\fP صحيحًا، فستحل القيم في \fIenvz2\fP محل تلك التي بنفس الاسم في \fI*envz\fP، وإلا فلا. .P \fBenvz_remove\fP() تُزيل الإدخال لـ \fIname\fP من (\fI*envz\fP,\ \fI*envz_len\fP) إذا كان موجودًا. .P \fBenvz_strip\fP() تُزيل جميع الإدخالات ذات القيمة NULL. .SH "قيمة الإرجاع" جميع دوال envz التي تقوم بتخصيص الذاكرة لها نوع إرجاع \fIerror_t\fP (نوع صحيح)، وتُعيد 0 للنجاح، و \fBENOMEM\fP إذا حدث خطأ في التخصيص. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBenvz_add\fP(), \fBenvz_entry\fP(), \fBenvz_get\fP(), \fBenvz_merge\fP(), \fBenvz_remove\fP(), \fBenvz_strip\fP() T} سلامة الخيوط MT\-Safe .TE .SH المعايير GNU. .SH أمثلة .\" SRC BEGIN (envz_add.c) .EX #include #include #include \& int main(int argc, char *argv[], char *envp[]) { char *str; size_t e_len = 0; \& for (size_t i = 0; envp[i] != NULL; i++) e_len += strlen(envp[i]) + 1; \& str = envz_entry(*envp, e_len, "HOME"); printf("%s\[rs]n", str); str = envz_get(*envp, e_len, "HOME"); printf("%s\[rs]n", str); exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "انظر أيضًا" \fBargz_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 .