mbsnrtowcs(3)

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

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

موجز
#include <wchar.h>

size_t mbsnrtowcs(size_t size;
                  wchar_t dest[restrict size], const char **restrict src,
                  size_t nms, size_t size, mbstate_t *restrict ps);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

mbsnrtowcs():
    منذ glibc 2.10:
        _POSIX_C_SOURCE >= 200809L
    قبل glibc 2.10:
        _GNU_SOURCE

الوصف
الدالة mbsnrtowcs() تشبه الدالة mbsrtowcs(3) ، باستثناء أن عدد البايتات المُراد تحويلها، بدءًا من *src، محدود بـ nms بايت على الأكثر.

إذا لم يكن dest NULL، تُحوّل الدالة mbsnrtowcs() على الأكثر nms بايت من سلسلة المحارف متعددة البايت *src إلى سلسلة محارف عريضة تبدأ عند dest. يُكتب على الأكثر size حرفًا عريضًا إلى dest. تُحدّث حالة الإزاحة *ps. يُنفّذ التحويل فعليًا باستدعاء متكرر لـ mbrtowc(dest, *src, n, ps) حيث n عدد موجب، طالما نجح هذا الاستدعاء، ثم زيادة dest بمقدار 1 و *src بعدد البايتات المستهلكة. يمكن أن يتوقف التحويل لثلاثة أسباب:

•   وُجِد تسلسل متعدد البايتات غير صالح. في هذه الحالة، يُترك *src يشير إلى التسلسل غير الصالح، ويُعاد (size_t) -1، ويُضبط errno على EILSEQ.

•   حد nms يُجبر على التوقف، أو خُزّن size حرفًا عريضًا غير L'\0' عند dest. في هذه الحالة، يُترك *src يشير إلى تسلسل المحارف متعددة البايت التالي المراد تحويله، ويُعاد عدد المحارف العريضة المكتوبة إلى dest.

•   حُوّلت سلسلة المحارف متعددة البايت بالكامل، بما في ذلك الحرف العريض الفارغ الختامي ('\0') (الذي له تأثير جانبي بإعادة *ps إلى الحالة الأولية). في هذه الحالة، يُضبط *src على NULL، ويُعاد عدد المحارف العريضة المكتوبة إلى dest، باستثناء الحرف العريض الفارغ الختامي.

وفقًا لـ POSIX.1، إذا انتهى مخزن الإدخال بحرف غير مكتمل، فمن غير المحدد ما إذا كان التحويل يتوقف عند نهاية الحرف السابق (إن وجد)، أو عند نهاية مخزن الإدخال. يتبنى تطبيق glibc السلوك الأول.

إذا كان dest NULL، يُتجاهل size، ويستمر التحويل كما سبق، باستثناء أن المحارف العريضة المحولة لا تُكتب إلى الذاكرة، ولا يوجد حد لحجم الوجهة.

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

يجب على المبرمج التأكد من وجود مساحة لـ size حرفًا عريضًا على الأقل عند dest.

قيمة الإرجاع
تُرجع الدالة mbsnrtowcs() عدد المحارف العريضة التي تشكل الجزء المحول من سلسلة المحارف العريضة، دون تضمين الحرف العريض الفارغ الختامي. إذا صودف تسلسل محارف متعددة البايت غير صالح، يُعاد (size_t) -1، ويُضبط errno على EILSEQ.

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

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

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

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

انظر أيضًا
iconv(3), mbrtowc(3), mbsinit(3), mbsrtowcs(3)

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

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

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