| getauxval(3) | Library Functions Manual | getauxval(3) |
الاسم¶
getauxval - استرداد قيمة من المتجه المساعد
المكتبة¶
مكتبة سي المعيارية (libc، -lc)
موجز¶
#include <sys/auxv.h>
unsigned long getauxval(unsigned long type);
الوصف¶
الدالة getauxval() تسترد القيم من المتجه المساعد، وهي آلية يستخدمها محمل الثنائيات ELF في النواة لتمرير معلومات معينة إلى مساحة المستخدم عند تنفيذ برنامج.
يتكون كل إدخال في المتجه المساعد من زوج من القيم: نوع يحدد ما يمثله هذا الإدخال، وقيمة لذلك النوع. عند إعطاء المعامل type، تُرجع getauxval() القيمة المقابلة.
القيمة المُعادة لكل type مذكورة في القائمة التالية. ليست كل قيم type موجودة في جميع البنى.
- AT_BASE
- العنوان الأساسي لمفسر البرنامج (عادةً، الرابط الديناميكي).
- AT_BASE_PLATFORM
- مؤشر إلى سلسلة محارف (فقط PowerPC و MIPS). في PowerPC، يُحدد هذا المنصة الحقيقية؛ قد يختلف عن AT_PLATFORM. في MIPS، يُحدد هذا مستوى ISA (منذ Linux 5.7).
- AT_CLKTCK
- التردد الذي يحسب به times(2). يمكن الحصول على هذه القيمة أيضًا عبر sysconf(_SC_CLK_TCK).
- AT_DCACHEBSIZE
- حجم كتلة خبيئة البيانات.
- AT_EGID
- معرف المجموعة الفعّال للخيط.
- AT_ENTRY
- عنوان الدخول للملف التنفيذي.
- AT_EUID
- معرف المستخدم الفعّال للخيط.
- AT_EXECFD
- واصف ملف البرنامج.
- AT_EXECFN
- مؤشر إلى سلسلة محارف تحتوي على اسم المسار المستخدم لتنفيذ البرنامج.
- AT_FLAGS
- أعلام (غير مستخدمة).
- AT_FPUCW
- كلمة تحكم FPU المستخدمة (فقط لمعمارية SuperH). يعطي هذا بعض المعلومات عن تهيئة FPU التي نفذها النواة.
- AT_GID
- معرف المجموعة الحقيقي للخيط.
- AT_HWCAP
- قناع بتات يعتمد على المعمارية وواجهة ABI، تشير إعداداته إلى قدرات المعالج التفصيلية. محتويات قناع البتات تعتمد على العتاد (على سبيل المثال، انظر ملف مصدر النواة arch/x86/include/asm/cpufeature.h للتفاصيل المتعلقة بمعمارية Intel x86؛ القيمة المعادة هي أول كلمة 32 بت من المصفوفة الموصوفة هناك). نسخة قابلة للقراءة البشرية من نفس المعلومات متاحة عبر /proc/cpuinfo.
- AT_HWCAP2 (منذ glibc 2.18)
- تلميحات إضافية تعتمد على الآلة حول قدرات المعالج.
- AT_ICACHEBSIZE
- حجم كتلة خبيئة التعليمات.
- AT_L1D_CACHEGEOMETRY
- هندسة خبيئة البيانات L1، مُرمَّزة بحجم سطر الخبيئة بالبايتات في البتات الـ16 السفلية وترابطية الخبيئة في البتات الـ16 التالية. الترابطية بحيث إذا كانت N هي القيمة 16 بت، فإن الخبيئة هي ترابطية مجموعة ذات N مسار.
- AT_L1D_CACHESIZE
- حجم خبيئة البيانات L1.
- AT_L1I_CACHEGEOMETRY
- هندسة خبيئة التعليمات L1، مُرمَّزة كما في AT_L1D_CACHEGEOMETRY.
- AT_L1I_CACHESIZE
- حجم خبيئة التعليمات L1.
- AT_L2_CACHEGEOMETRY
- هندسة خبيئة L2، مُرمَّزة كما في AT_L1D_CACHEGEOMETRY.
- AT_L2_CACHESIZE
- حجم خبيئة L2.
- AT_L3_CACHEGEOMETRY
- هندسة خبيئة L3، مُرمَّزة كما في AT_L1D_CACHEGEOMETRY.
- AT_L3_CACHESIZE
- حجم خبيئة L3.
- AT_PAGESZ
- حجم صفحة النظام (نفس القيمة التي يُرجعها sysconf(_SC_PAGESIZE)).
- AT_PHDR
- عنوان رؤوس البرنامج للملف التنفيذي.
- AT_PHENT
- حجم مدخل رأس البرنامج.
- AT_PHNUM
- عدد رؤوس البرنامج.
- AT_PLATFORM
- مؤشر إلى سلسلة محارف تحدد منصة العتاد التي يعمل عليها البرنامج. يستخدم الرابط الديناميكي هذا في تفسير قيم rpath.
- AT_RANDOM
- عنوان ستة عشر بايتًا تحتوي على قيمة عشوائية.
- AT_SECURE
- له قيمة غير صفرية إذا كان يجب معالجة هذا الملف التنفيذي بشكل آمن. في الغالب، تشير القيمة غير الصفرية إلى أن العملية تنفذ ملفًا ثنائيًا set-user-ID أو set-group-ID (بحيث تختلف معرفات المستخدم أو المجموعة الحقيقية والفعلية عن بعضها البعض)، أو أنها اكتسبت صلاحيات بتنفيذ ملف ثنائي له صلاحيات (انظر capabilities(7)). بدلاً من ذلك، قد تُثار قيمة غير صفرية بواسطة وحدة أمان لينكس. عندما تكون هذه القيمة غير صفرية، يعطل الرابط الديناميكي استخدام متغيرات بيئة معينة (انظر ld-linux.so(8)) ويغير glibc جوانب أخرى من سلوكه. (انظر أيضًا secure_getenv(3).)
- AT_SYSINFO
- نقطة الدخول إلى دالة استدعاء النظام في vDSO. غير موجودة/مطلوبة على جميع البنى (مثلًا، غائبة على x86-64).
- AT_SYSINFO_EHDR
- عنوان صفحة تحتوي على الكائن المشترك الديناميكي الافتراضي (vDSO) الذي ينشئه النواة لتوفير تطبيقات سريعة لبعض استدعاءات النظام.
- AT_UCACHEBSIZE
- حجم كتلة الخبيئة الموحدة.
- AT_UID
- معرف المستخدم الحقيقي للخيط.
قيمة الإرجاع¶
عند النجاح، تُرجع getauxval() القيمة المقابلة لـ type. إذا لم يُعثر على type، تُرجع 0.
الأخطاء¶
- ENOENT (منذ glibc 2.19)
- لم يُعثر على إدخال مقابل لـ type في المتجه المساعد.
السمات¶
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
| الواجهة | السمة | القيمة |
| getauxval() | سلامة الخيوط | MT-Safe |
المعايير¶
GNU.
التاريخ¶
glibc 2.16.
ملاحظات¶
المستهلك الرئيسي للمعلومات في المتجه المساعد هو الرابط الديناميكي، ld-linux.so(8). المتجه المساعد هو اختصار ملائم وفعال يسمح للنواة بإيصال مجموعة معينة من المعلومات القياسية التي يحتاجها الرابط الديناميكي عادةً أو دائمًا. في بعض الحالات، يمكن الحصول على نفس المعلومات بواسطة استدعاءات النظام، لكن استخدام المتجه المساعد أرخص.
يقع المتجه المساعد مباشرة فوق قائمة الوسائط والبيئة في مساحة عنوان العملية. يمكن عرض المتجه المساعد المقدم لبرنامج بتعيين متغير البيئة LD_SHOW_AUXV عند تشغيل برنامج:
$ LD_SHOW_AUXV=1 sleep 1
يمكن الحصول على المتجه المساعد لأي عملية (رهنا بأذونات الملف) عبر /proc/pid/auxv؛ انظر proc(5) لمزيد من المعلومات.
العلل¶
قبل إضافة خطأ ENOENT في glibc 2.19، لم تكن هناك طريقة للتمييز بشكل لا لبس فيه بين الحالة التي لا يمكن فيها العثور على type والحالة التي كانت فيها القيمة المقابلة لـ type صفرًا.
انظر أيضًا¶
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 8 فبراير 2026 | صفحات دليل لينكس (لم تصدر بعد) |