mbtowc(3)

الاسم
mbtowc - تحويل تسلسل متعدد البايتات إلى محرف عريض

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

موجز
#include <stdlib.h>

int mbtowc(size_t size;
           wchar_t *restrict pwc, const char s[restrict size],
           size_t size);

الوصف
الحالة الرئيسية لهذه الدالة هي عندما يكون s ليس NULL و pwc ليس NULL. في هذه الحالة، تفحص الدالة mbtowc() على الأكثر size بايت من السلسلة متعددة البايتات بدءًا من s، وتستخرج المحرف متعدد البايتات الكامل التالي، وتحوله إلى محرف عريض وتخزنه في *pwc. تُحدّث حالة إزاحة داخلية معروفة فقط للدالة mbtowc(). إذا لم يُشر s إلى بايت فارغ ('\0')، فإنها تُرجع عدد البايتات التي استُهلكت من s، وإلا تُرجع 0.

إذا كانت البايتات size بدءًا من s لا تحتوي على محرف متعدد البايتات كامل، أو إذا كانت تحتوي على تسلسل متعدد البايتات غير صالح، تُرجع mbtowc() -1. يمكن أن يحدث هذا حتى لو كان size >= MB_CUR_MAX، إذا كانت السلسلة متعددة البايتات تحتوي على تسلسلات إزاحة زائدة.

حالة مختلفة هي عندما يكون s ليس NULL ولكن pwc هو NULL. في هذه الحالة، تتصرف الدالة mbtowc() كما سبق، باستثناء أنها لا تخزن المحرف العريض المُحوّل في الذاكرة.

حالة ثالثة هي عندما يكون s هو NULL. في هذه الحالة، يُتجاهل pwc و size. تُعيد الدالة mbtowc() ضبط حالة الإزاحة، المعروفة فقط لهذه الدالة، إلى الحالة الأولية، وتُعيد قيمة غير صفرية إذا كان الترميز يحتوي على حالة إزاحة غير بديهية، أو صفرًا إذا كان الترميز عديم الحالة.

قيمة الإرجاع
إذا كان s ليس NULL، تُرجع الدالة mbtowc() عدد البايتات المستهلكة بدءًا من s، أو 0 إذا أشار s إلى بايت فارغ، أو -1 عند الفشل.

إذا كان s هو NULL، تُرجع الدالة mbtowc() قيمة غير صفرية إذا كان الترميز يحتوي على حالة إزاحة غير بديهية، أو صفرًا إذا كان الترميز عديم الحالة.

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

الإصدارات
هذه الدالة ليست آمنة للخيوط المتعددة. تُوفر الدالة mbrtowc(3) واجهة أفضل لنفس الوظيفة.

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

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

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

انظر أيضًا
MB_CUR_MAX(3), mblen(3), mbrtowc(3), mbstowcs(3), wcstombs(3), wctomb(3)

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

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

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