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.

ARG_MAX - _SC_ARG_MAX
    الحد الأقصى لطول الوسائط لعائلة دوال exec(3). يجب ألا يقل عن _POSIX_ARG_MAX (4096).

CHILD_MAX - _SC_CHILD_MAX
    الحد الأقصى لعدد العمليات المتزامنة لكل معرّف مستخدم. يجب ألا يقل عن _POSIX_CHILD_MAX (25).

HOST_NAME_MAX - _SC_HOST_NAME_MAX
    الحد الأقصى لطول اسم المضيف، دون تضمين بايت الصفر الختامي، كما يُرجع بواسطة gethostname(2). يجب ألا يقل عن _POSIX_HOST_NAME_MAX (255).

LOGIN_NAME_MAX - _SC_LOGIN_NAME_MAX
    الحد الأقصى لطول اسم الدخول، بما في ذلك بايت الصفر الختامي. يجب ألا يقل عن _POSIX_LOGIN_NAME_MAX (9).

NGROUPS_MAX - _SC_NGROUPS_MAX
    العدد الأقصى لمعرفات المجموعات التكميلية.

نقرات الساعة - _SC_CLK_TCK
    عدد نقرات الساعة في الثانية. المتغير المقابل مهمل. كان يُسمى بالطبع CLK_TCK. (ملاحظة: الكليّة CLOCKS_PER_SEC لا تُعطي معلومات: يجب أن تساوي 1000000.)

OPEN_MAX - _SC_OPEN_MAX
    العدد الأقصى للملفات التي يمكن لعملية فتحها في أي وقت. يجب ألا يقل عن _POSIX_OPEN_MAX (20).

PAGESIZE - _SC_PAGESIZE
    حجم الصفحة بالبايت. يجب ألا يقل عن 1.

PAGE_SIZE - _SC_PAGE_SIZE
    مرادف لـ PAGESIZE/_SC_PAGESIZE. (كلا PAGESIZE و PAGE_SIZE مُحددان في POSIX.)

RE_DUP_MAX - _SC_RE_DUP_MAX
    عدد التكرارات المسموح بها لتعبير BRE بواسطة regexec(3) و regcomp(3). يجب ألا يقل عن _POSIX2_RE_DUP_MAX (255).

STREAM_MAX - _SC_STREAM_MAX
    العدد الأقصى للتدفقات التي يمكن لعملية فتحها في أي وقت. إذا كان مُعرّفًا، فله نفس قيمة الكليّة القياسية C FOPEN_MAX. يجب ألا يقل عن _POSIX_STREAM_MAX (8).

SYMLOOP_MAX - _SC_SYMLOOP_MAX
    العدد الأقصى للروابط الرمزية المُشاهدة في اسم مسار قبل أن يُرجع الحل ELOOP. يجب ألا يقل عن _POSIX_SYMLOOP_MAX (8).

TTY_NAME_MAX - _SC_TTY_NAME_MAX
    الطول الأقصى لاسم جهاز الطرفية، بما في ذلك البايت الفارغ الختامي. يجب ألا يقل عن _POSIX_TTY_NAME_MAX (9).

TZNAME_MAX - _SC_TZNAME_MAX
    العدد الأقصى للبايتات في اسم منطقة زمنية. يجب ألا يقل عن _POSIX_TZNAME_MAX (6).

_POSIX_VERSION - _SC_VERSION
    يشير إلى السنة والشهر اللذين وُوفق فيهما على معيار POSIX.1 بالتنسيق YYYYMML؛ القيمة 199009L تشير إلى مراجعة سبتمبر 1990.

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

BC_BASE_MAX - _SC_BC_BASE_MAX
    يشير إلى القيمة القصوى لـ obase التي تقبلها الأداة المساعدة bc(1).

BC_DIM_MAX - _SC_BC_DIM_MAX
    يشير إلى القيمة القصوى للعناصر المسموح بها في مصفوفة بواسطة bc(1).

BC_SCALE_MAX - _SC_BC_SCALE_MAX
    يشير إلى القيمة القصوى لـ scale المسموح بها بواسطة bc(1).

BC_STRING_MAX - _SC_BC_STRING_MAX
    يشير إلى الطول الأقصى لسلسلة محارف تقبلها bc(1).

COLL_WEIGHTS_MAX - _SC_COLL_WEIGHTS_MAX
    يشير إلى العدد الأقصى للأوزان التي يمكن تعيينها لإدخال الكلمة الرئيسية LC_COLLATE order في ملف تعريف المحلية.

EXPR_NEST_MAX - _SC_EXPR_NEST_MAX
    هو العدد الأقصى للتعبيرات التي يمكن تداخلها داخل أقواس بواسطة expr(1).

LINE_MAX - _SC_LINE_MAX
    الطول الأقصى لسطر إدخال الأداة المساعدة، سواء من الإدخال المعياري أو من ملف. يشمل هذا مسافة لسطر جديد زائد.

RE_DUP_MAX - _SC_RE_DUP_MAX
    العدد الأقصى للتكرارات المتكررة لتعبير نمطي عند استخدام ترميز الفاصل \{m,n\}.

POSIX2_VERSION - _SC_2_VERSION
    يشير إلى إصدار معيار POSIX.2 بتنسيق YYYYMML.

POSIX2_C_DEV - _SC_2_C_DEV
    يشير إلى ما إذا كانت تسهيلات تطوير لغة C وفق POSIX.2 مدعومة.

POSIX2_FORT_DEV - _SC_2_FORT_DEV
    يشير إلى ما إذا كانت أدوات تطوير FORTRAN وفق POSIX.2 مدعومة.

POSIX2_FORT_RUN - _SC_2_FORT_RUN
    يشير إلى ما إذا كانت أدوات زمن التشغيل FORTRAN وفق POSIX.2 مدعومة.

_POSIX2_LOCALEDEF - _SC_2_LOCALEDEF
    يشير إلى ما إذا كان إنشاء الإعدادات المحلية وفق POSIX.2 عبر localedef(1) مدعومًا.

POSIX2_SW_DEV - _SC_2_SW_DEV
    يشير إلى ما إذا كان خيار أدوات تطوير البرمجيات وفق 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> عند ترجمة التطبيق.

الأخطاء

EINVAL
    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 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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