wcrtomb(3)

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

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

موجز
#include <wchar.h>

size_t wcrtomb(char *restrict s, wchar_t wc, mbstate_t *restrict ps);

الوصف
الحالة الرئيسية لهذه الدالة هي عندما لا يكون s NULL ولا يكون wc محرفًا عريضًا فارغًا (L'\0'). في هذه الحالة، تحوِّل الدالة wcrtomb() المحرف العريض wc إلى تمثيله متعدد البايتات وتخزنه في بداية مصفوفة المحارف المشار إليها بـ s. تُحدِّث حالة الإزاحة *ps، وتُعيد طول ذلك التمثيل متعدد البايتات، أي عدد البايتات المكتوبة عند s.

حالة مختلفة هي عندما لا يكون s NULL، لكن wc هو محرف عريض فارغ (L'\0'). في هذه الحالة، تخزِّن الدالة wcrtomb() في مصفوفة المحارف المشار إليها بـ s تسلسل الإزاحة اللازم لإعادة *ps إلى الحالة الأولية، متبوعًا ببايت '\0'. تُحدِّث حالة الإزاحة *ps (أي تعيدها إلى الحالة الأولية)، وتُعيد طول تسلسل الإزاحة زائد واحد، أي عدد البايتات المكتوبة عند s.

حالة ثالثة هي عندما يكون s NULL. في هذه الحالة، يُتجاهل wc، وتُعيد الدالة فعليًا

    wcrtomb(buf, L'\0', ps)

حيث buf هو مخبأ داخلي مجهول.

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

سوف تُكتب بايتات بقدر MB_CUR_MAX كحد أقصى في s. يجب على المبرمج التأكد من وجود مساحة كافية لتخزين التسلسل متعدد البايتات في s.

قيمة الإرجاع
تُعيد الدالة wcrtomb() عدد البايتات التي كُتبت أو كانت ستُكتب إلى مصفوفة البايتات عند s. إذا تعذر تمثيل wc كتسلسل متعدد البايتات (وفقًا للإعدادات المحلية الحالية)، يُعاد (size_t) -1، ويُضبط errno على EILSEQ.

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

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

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

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

تمرير NULL كـ ps ليس آمنًا في تعدد الخيوط.

انظر أيضًا
mbsinit(3), wcsrtombs(3)

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

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

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