wcsrtombs(3)

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

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

موجز
#include <wchar.h>

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

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

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

•   حد الحجم يُجبر على التوقف. في هذه الحالة، يُترك *src يشير إلى المحرف العريض التالي المراد تحويله، ويُعاد عدد البايتات المكتوبة إلى dest.

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

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

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

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

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

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

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

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

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

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

انظر أيضًا
iconv(3), mbsinit(3), wcrtomb(3), wcsnrtombs(3), wcstombs(3)

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

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

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