Scroll to navigation

sysconf(3) Library Functions Manual sysconf(3)

الاسم

sysconf - الحصول على معلومات التهيئة وقت التشغيل

المكتبة

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

موجز

#include <unistd.h>
long sysconf(int name);

الوصف

يسمح POSIX للتطبيق باختبار وقت التجميع أو وقت التشغيل ما إذا كانت خيارات معينة مدعومة، أو ما هي قيمة بعض الثوابت أو الحدود القابلة للتكوين.

في وقت التجميع، يُفعل ذلك بتضمين <unistd.h> و/أو <limits.h> واختبار قيمة بعض وحدات الماكرو.

في وقت التشغيل، يمكن طلب قيم رقمية باستخدام الدالة الحالية sysconf(). يمكن طلب قيم رقمية قد تعتمد على نظام الملفات الذي يوجد فيه ملف باستخدام fpathconf(3) وpathconf(3). يمكن طلب قيم سلاسل محارف باستخدام confstr(3).

القيم التي تُحصل من هذه الدوال هي ثوابت تهيئة للنظام. لا تتغير خلال عمر عملية.

بالنسبة للخيارات، يوجد عادة ثابت _POSIX_FOO قد يُعرف في <unistd.h>. إذا كان غير معرّف، فيجب السؤال وقت التشغيل. إذا عُرف إلى -1، فالخيار غير مدعوم. إذا عُرف إلى 0، فالدوال والملفات الرأسية ذات الصلة موجودة، لكن يجب السؤال وقت التشغيل عن درجة الدعم المتاحة. إذا عُرف إلى قيمة غير -1 أو 0، فالخيار مدعوم. عادةً تشير القيمة (مثل 200112L) إلى سنة وشهر مراجعة POSIX التي تصف الخيار. يستخدم glibc القيمة 1 للإشارة إلى الدعم طالما لم تُنشر مراجعة POSIX بعد. ستكون وسيطة sysconf() هي _SC_FOO. لقائمة الخيارات، انظر posixoptions(7).

بالنسبة للمتغيرات أو الحدود، يوجد عادة ثابت _FOO، قد يُعرف في <limits.h>، أو _POSIX_FOO، قد يُعرف في <unistd.h>. لن يُعرف الثابت إذا كان الحد غير محدد. إذا عُرف الثابت، فإنه يعطي قيمة مضمونة، وقد تكون قيمة أكبر مدعومة فعليًا. إذا أراد تطبيق الاستفادة من القيم التي قد تتغير بين الأنظمة، يمكن استدعاء sysconf(). ستكون وسيطة sysconf() هي _SC_FOO.

متغيرات POSIX.1

نعطي اسم المتغير، واسم وسيطة sysconf() المستخدمة للاستعلام عن قيمته، ووصفًا مختصرًا.

أولاً، القيم المتوافقة مع POSIX.1.

الحد الأقصى لطول الوسائط لعائلة دوال exec(3). يجب ألا يقل عن _POSIX_ARG_MAX (4096).
الحد الأقصى لعدد العمليات المتزامنة لكل معرّف مستخدم. يجب ألا يقل عن _POSIX_CHILD_MAX (25).
الحد الأقصى لطول اسم المضيف، دون تضمين بايت الصفر الختامي، كما يُرجع بواسطة gethostname(2). يجب ألا يقل عن _POSIX_HOST_NAME_MAX (255).
الحد الأقصى لطول اسم الدخول، بما في ذلك بايت الصفر الختامي. يجب ألا يقل عن _POSIX_LOGIN_NAME_MAX (9).
العدد الأقصى لمعرفات المجموعات التكميلية.
نقرات الساعة - _SC_CLK_TCK
عدد نقرات الساعة في الثانية. المتغير المقابل مهمل. كان يُسمى بالطبع CLK_TCK. (ملاحظة: الكليّة CLOCKS_PER_SEC لا تُعطي معلومات: يجب أن تساوي 1000000.)
العدد الأقصى للملفات التي يمكن لعملية فتحها في أي وقت. يجب ألا يقل عن _POSIX_OPEN_MAX (20).
حجم الصفحة بالبايت. يجب ألا يقل عن 1.
مرادف لـ PAGESIZE/_SC_PAGESIZE. (كلا PAGESIZE و PAGE_SIZE مُحددان في POSIX.)
عدد التكرارات المسموح بها لتعبير BRE بواسطة regexec(3) و regcomp(3). يجب ألا يقل عن _POSIX2_RE_DUP_MAX (255).
العدد الأقصى للتدفقات التي يمكن لعملية فتحها في أي وقت. إذا كان مُعرّفًا، فله نفس قيمة الكليّة القياسية C FOPEN_MAX. يجب ألا يقل عن _POSIX_STREAM_MAX (8).
العدد الأقصى للروابط الرمزية المُشاهدة في اسم مسار قبل أن يُرجع الحل ELOOP. يجب ألا يقل عن _POSIX_SYMLOOP_MAX (8).
الطول الأقصى لاسم جهاز الطرفية، بما في ذلك البايت الفارغ الختامي. يجب ألا يقل عن _POSIX_TTY_NAME_MAX (9).
العدد الأقصى للبايتات في اسم منطقة زمنية. يجب ألا يقل عن _POSIX_TZNAME_MAX (6).
_POSIX_VERSION - _SC_VERSION
يشير إلى السنة والشهر اللذين وُوفق فيهما على معيار POSIX.1 بالتنسيق YYYYMML؛ القيمة 199009L تشير إلى مراجعة سبتمبر 1990.

متغيرات POSIX.2

تاليًا، قيم POSIX.2، التي تعطي حدودًا للأدوات المساعدة.

يشير إلى القيمة القصوى لـ obase التي تقبلها الأداة المساعدة bc(1).
يشير إلى القيمة القصوى للعناصر المسموح بها في مصفوفة بواسطة bc(1).
يشير إلى القيمة القصوى لـ scale المسموح بها بواسطة bc(1).
يشير إلى الطول الأقصى لسلسلة محارف تقبلها bc(1).
يشير إلى العدد الأقصى للأوزان التي يمكن تعيينها لإدخال الكلمة الرئيسية LC_COLLATE order في ملف تعريف المحلية.
هو العدد الأقصى للتعبيرات التي يمكن تداخلها داخل أقواس بواسطة expr(1).
الطول الأقصى لسطر إدخال الأداة المساعدة، سواء من الإدخال المعياري أو من ملف. يشمل هذا مسافة لسطر جديد زائد.
العدد الأقصى للتكرارات المتكررة لتعبير نمطي عند استخدام ترميز الفاصل \{m,n\}.
يشير إلى إصدار معيار POSIX.2 بتنسيق YYYYMML.
يشير إلى ما إذا كانت تسهيلات تطوير لغة C وفق POSIX.2 مدعومة.
يشير إلى ما إذا كانت أدوات تطوير FORTRAN وفق POSIX.2 مدعومة.
يشير إلى ما إذا كانت أدوات زمن التشغيل FORTRAN وفق POSIX.2 مدعومة.
_POSIX2_LOCALEDEF - _SC_2_LOCALEDEF
يشير إلى ما إذا كان إنشاء الإعدادات المحلية وفق POSIX.2 عبر localedef(1) مدعومًا.
يشير إلى ما إذا كان خيار أدوات تطوير البرمجيات وفق POSIX.2 مدعومًا.

توجد هذه القيم أيضًا، ولكنها قد لا تكون معيارية.


- _SC_PHYS_PAGES
عدد صفحات الذاكرة الفعلية. لاحظ أنه من الممكن أن يفيض حاصل ضرب هذه القيمة وقيمة _SC_PAGESIZE.

- _SC_AVPHYS_PAGES
عدد صفحات الذاكرة الفعلية المتاحة حاليًا.

- _SC_NPROCESSORS_CONF
عدد المعالجات المكوّنة. انظر أيضًا get_nprocs_conf(3).

- _SC_NPROCESSORS_ONLN
عدد المعالجات المتصلة حاليًا (المتاحة). انظر أيضًا get_nprocs_conf(3).

قيمة الإرجاع

قيمة إرجاع sysconf() هي إحدى التالية:

عند حدوث خطأ، يُعاد -1 ويُضبط errno للإشارة إلى الخطأ (على سبيل المثال، EINVAL، للإشارة إلى أن الاسم name غير صالح).
إذا كان name يوافق حدا أقصى أو أدنى، وكان ذلك الحد غير محدد، تُعاد القيمة -1 ولا يتغير errno. (للتمييز بين الحد غير المحدد والخطأ، اضبط errno على الصفر قبل الاستدعاء، ثم تحقق ما إذا كان errno غير صفري عند إعادة -1).
إذا كان name يوافق خيارا، تُعاد قيمة موجبة إذا كان الخيار مدعوما، وتُعاد -1 إذا لم يكن مدعوما.
وإلا، تُعاد القيمة الحالية للخيار أو الحد. لن تكون هذه القيمة أكثر تقييداً من القيمة المقابلة التي وُصفت للتطبيق في <unistd.h> أو <limits.h> عند ترجمة التطبيق.

الأخطاء

name غير صالح.

السمات

للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).

الواجهة السمة القيمة
sysconf() سلامة الخيوط بيئة آمنة لتعدد الخيوط (MT-Safe)

المعايير

POSIX.1-2008.

التاريخ

POSIX.1-2001.

العلل

من الصعب استخدام ARG_MAX لأنه لم يُحدد كم من مسافة الوسائط لدالة exec(3) تستهلكها متغيرات بيئة المستخدم.

بعض القيم المعادة قد تكون ضخمة؛ وهي غير مناسبة لتخصيص الذاكرة.

انظر أيضًا

bc(1)، expr(1)، getconf(1)، locale(1)، confstr(3)، fpathconf(3)، pathconf(3)، posixoptions(7)

ترجمة

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

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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

8 فبراير 2026 صفحات دليل لينكس (لم تصدر بعد)