setenv(3)

الاسم
setenv - تغيير أو إضافة متغير بيئة

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <stdlib.h>

int setenv(const char *name, const char *value, int overwrite);
int unsetenv(const char *name);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

setenv()، unsetenv():
    _POSIX_C_SOURCE >= 200112L
        || /* glibc <= 2.19: */ _BSD_SOURCE

الوصف
تضيف الدالة setenv() المتغير name إلى البيئة بالقيمة value، إذا لم يكن name موجودًا بالفعل. إذا كان name موجودًا في البيئة، فتُغيّر قيمته إلى value إذا كان overwrite غير صفري؛ إذا كان overwrite صفريًا، فلا تُغيّر قيمة name (وتُرجع setenv() حالة نجاح). تُنشئ هذه الدالة نسخًا من السلاسل المحارف المشار إليها بواسطة name وvalue (على عكس putenv(3)).

تحذف الدالة unsetenv() المتغير name من البيئة. إذا لم يكن name موجودًا في البيئة، فتنجح الدالة، وتبقى البيئة دون تغيير.

قيمة الإرجاع
تُرجع الدالتان setenv() وunsetenv() صفرًا عند النجاح، أو -1 عند الخطأ، مع ضبط errno للإشارة إلى الخطأ.

الأخطاء

EINVAL
    name هو NULL، أو يشير إلى سلسلة محارف طولها 0، أو يحتوي على حرف '='.

ENOMEM
    ذاكرة غير كافية لإضافة متغير جديد إلى البيئة.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
setenv(), unsetenv() | سلامة الخيوط | MT-Unsafe const:env

المعايير
POSIX.1-2008.

التاريخ
POSIX.1-2001، 4.3BSD.

قبل glibc 2.2.2، كان النموذج الأولي لـ unsetenv() يُرجع void؛ تتبع إصدارات glibc الأحدث النموذج الأولي المتوافق مع POSIX.1 الموضح في الملخص.

تحذيرات
لا يتطلب POSIX.1 أن تكون setenv() أو unsetenv() قابلة لإعادة الدخول.

العلل
يحدد POSIX.1 أنه إذا احتوى name على حرف '='، فيجب أن تفشل setenv() مع الخطأ EINVAL؛ ومع ذلك، سمحت إصدارات glibc قبل glibc 2.3.4 بعلامة '=' في name.

انظر أيضًا
clearenv(3)، getenv(3)، putenv(3)، environ(7)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.