mbrlen(3)

الاسم
mbrlen - تحديد عدد البايتات في المحرف التالي متعدد البايت

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

موجز
#include <wchar.h>

size_t mbrlen(size_t n;
              const char s[restrict n], size_t n,
              mbstate_t *restrict ps);

الوصف
تفحص الدالة mbrlen() على الأكثر n بايت من سلسلة المحارف متعددة البايت المبتدئة عند s وتستخرج المحرف التالي الكامل متعدد البايت. تُحدّث حالة الإزاحة *ps. إذا لم يكن المحرف متعدد البايت هو المحرف العريض الخالي، تُرجع عدد البايتات التي استُهلكت من s. إذا كان المحرف متعدد البايت هو المحرف العريض الخالي، تُعيد ضبط حالة الإزاحة *ps إلى الحالة المبدئية وتُرجع 0.

إذا لم تحتوِ البايتات n المبتدئة عند s على محرف كامل متعدد البايت، تُرجع mbrlen() (size_t) -2. يمكن أن يحدث هذا حتى لو كان n >= MB_CUR_MAX، إذا احتوت سلسلة المحارف متعددة البايت على تسلسلات إزاحة زائدة.

إذا احتوت سلسلة المحارف متعددة البايت المبتدئة عند s على تسلسل غير صالح متعدد البايت قبل المحرف الكامل التالي، تُرجع mbrlen() (size_t) -1 وتضبط errno إلى EILSEQ. في هذه الحالة، تكون التأثيرات على *ps غير معرّفة.

إذا كان ps فارغًا (NULL)، تُستخدم حالة مجهولة ثابتة معروفة فقط للدالة mbrlen() بدلاً من ذلك.

قيمة الإرجاع
تُرجع الدالة mbrlen() عدد البايتات التي حُللت من تسلسل المحارف متعددة البايت المبتدئ عند s، إذا تم التعرف على محرف عريض غير خالٍ. تُرجع 0، إذا تم التعرف على محرف عريض خالٍ. تُرجع (size_t) -1 وتضبط errno إلى EILSEQ، إذا تمت مصادفة تسلسل غير صالح متعدد البايت. تُرجع (size_t) -2 إذا لم تستطع تحليل محرف كامل متعدد البايت، مما يعني أنه يجب زيادة n.

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

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

التاريخ
POSIX.1-2001، C99.

ملاحظات
يعتمد سلوك mbrlen() على فئة LC_CTYPE من الإعدادات المحلية الحالية.

انظر أيضًا
mbrtowc(3)

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

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

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