putenv(3)

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

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

موجز
#include <stdlib.h>

int putenv(char *string);

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

putenv():
    _XOPEN_SOURCE
        || /* glibc >= 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _SVID_SOURCE

الوصف
الدالة putenv() تضيف أو تغير قيمة متغيرات البيئة. المعامل string يكون بالصيغة name=value. إذا لم يكن name موجودًا بالفعل في البيئة، فتُضاف string إلى البيئة. إذا كان name موجودًا، فتُغير قيمة name في البيئة إلى value. سلسلة المحارف المشار إليها بواسطة string تصبح جزءًا من البيئة، لذا تغيير السلسلة يغير البيئة.

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

الأخطاء

ENOMEM
    مساحة غير كافية لتخصيص بيئة جديدة.

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

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

التاريخ
POSIX.1-2001, SVr2, 4.3BSD-Reno.

الدالة putenv() ليست مطلوبة أن تكون قابلة لإعادة الدخول، والإصدار في glibc 2.0 ليس كذلك، لكن إصدار glibc 2.1 هو كذلك.

منذ glibc 2.1.2، يتوافق تطبيق glibc مع SUSv2: يُستخدم المؤشر string المُعطى لـ putenv(). على وجه الخصوص، تصبح هذه السلسلة جزءًا من البيئة؛ تغييرها لاحقًا سيغير البيئة. (وبالتالي، من الخطأ استدعاء putenv() بمتغير تلقائي كمعامل، ثم العودة من الدالة المستدعية بينما string لا يزال جزءًا من البيئة.) ومع ذلك، من glibc 2.0 إلى glibc 2.1.1، يختلف الأمر: تُستخدم نسخة من السلسلة. من ناحية، يسبب هذا تسربًا للذاكرة، ومن ناحية أخرى، ينتهك SUSv2.

إصدار 4.3BSD-Reno، مثل glibc 2.0، يستخدم نسخة؛ هذا أُصلح في جميع أنظمة BSD الحديثة.

SUSv2 يزيل const من النموذج الأولي، وكذلك يفعل glibc 2.1.3.

تطبيق مكتبة GNU C يوفر امتدادًا غير قياسي. إذا لم تتضمن string علامة يساوي:

    putenv("NAME");

فإن المتغير المُسمى يُزال من بيئة المستدعي.

انظر أيضًا
clearenv(3), getenv(3), setenv(3), unsetenv(3), environ(7)

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

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

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