wcsnrtombs(3)

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

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

موجز
#include <wchar.h>

size_t wcsnrtombs(size_t dsize;
                  char dest[restrict dsize],
                  const wchar_t **restrict src,
                  size_t nwc, size_t dsize, mbstate_t *restrict ps);

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

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

الوصف
الدالة wcsnrtombs() تشبه الدالة wcsrtombs(3) باستثناء أن عدد المحارف العريضة المراد تحويلها، بدءًا من *src، محدود بـ nwc.

إذا لم يكن dest NULL، تُحوِّل الدالة wcsnrtombs() على الأكثر nwc محرفًا عريضًا من سلسلة المحارف العريضة *src إلى سلسلة متعددة البايتات تبدأ من dest. يُكتب على الأكثر dsize بايت إلى dest. تُحدَّث حالة الإزاحة *ps. يُنفَّذ التحويل فعليًا باستدعاء متكرر لـ wcrtomb(dest, *src, ps)، طالما نجح هذا الاستدعاء، ثم زيادة dest بعدد البايتات المكتوبة و *src بمقدار واحد. يمكن أن يتوقف التحويل لثلاثة أسباب:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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