getenv(3)

الاسم
getenv, secure_getenv - الحصول على متغير بيئة

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

موجز
#include <stdlib.h>

char *getenv(const char *name);
char *secure_getenv(const char *name);

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

secure_getenv():
    _GNU_SOURCE

الوصف
تبحث الدالة getenv() في قائمة البيئة لإيجاد متغير البيئة name، وتُرجِع مؤشرًا إلى سلسلة المحارف value المقابلة.

الدالة secure_getenv() مماثلة لـ getenv() باستثناء أنها تُرجِع NULL في الحالات التي يكون فيها "التنفيذ الآمن" مطلوبًا. يُطلب التنفيذ الآمن إذا تحقق أحد الشروط التالية عند تحميل البرنامج الذي تشغله العملية المستدعية:

•   لم يتطابق معرف المستخدم الفعّال للعملية مع معرف المستخدم الحقيقي لها، أو لم يتطابق معرف المجموعة الفعّال للعملية مع معرف المجموعة الحقيقي لها (عادةً ما يكون هذا نتيجة تنفيذ برنامج set-user-ID أو set-group-ID)؛

•   كان بت القدرة الفعّالة مُعيَّنًا على الملف القابل للتنفيذ؛ أو

•   تمتلك العملية مجموعة قدرات مسموح بها غير فارغة.

قد يُطلب التنفيذ الآمن أيضًا إذا تم تفعيله بواسطة بعض وحدات أمان Linux.

تُستخدم الدالة secure_getenv() في المكتبات العامة لتجنب الثغرات التي قد تحدث إذا وثقت برامج set-user-ID أو set-group-ID في البيئة عن طريق الخطأ.

قيمة الإرجاع
تُرجِع الدالة getenv() مؤشرًا إلى القيمة في البيئة، أو NULL إذا لم يكن هناك تطابق.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
getenv(), secure_getenv() | سلامة الخيوط | بيئة آمنة لتعدد الخيوط (MT-Safe)

المعايير

getenv()
    C11, POSIX.1-2008.

secure_getenv()
    POSIX.1-2024.

التاريخ

getenv()
    POSIX.1-2001،‏ C89،‏ C99،‏ SVr4،‏ 4.3BSD.

secure_getenv()
    POSIX.1-2024، glibc 2.17.

ملاحظات
سلاسل المحارف في قائمة البيئة تكون على الشكل name=value.

كما هو مطبَّق عادةً، تُرجِع getenv() مؤشرًا إلى سلسلة محارف داخل قائمة البيئة. يجب على المستدعي الحرص على عدم تعديل هذه السلسلة، لأن ذلك سيغير بيئة العملية.

لا يُشترط أن يكون تنفيذ getenv() قابلاً لإعادة الدخول. قد تكون السلسلة المشار إليها بقيمة الإرجاع لـ getenv() مخصصة بشكل ثابت، ويمكن تعديلها بواسطة استدعاء لاحق لـ getenv()، أو putenv(3)، أو setenv(3)، أو unsetenv(3).

يتم التحكم في وضع "التنفيذ الآمن" لـ secure_getenv() بواسطة العلم AT_SECURE الموجود في المتجه المساعد المُمرَّر من النواة إلى مساحة المستخدم.

انظر أيضًا
clearenv(3)، getauxval(3)، putenv(3)، setenv(3)، unsetenv(3)، capabilities(7)، environ(7)

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

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

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