.\" -*- coding: UTF-8 -*- .\" Copyright 2014, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH duplocale 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم duplocale \- نسخ كائن محلي .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBlocale_t duplocale(locale_t \fP\fIlocobj\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBduplocale\fP(): .nf منذ glibc 2.10: _XOPEN_SOURCE >= 700 قبل glibc 2.10: _GNU_SOURCE .fi .SH الوصف الدالة \fBduplocale\fP() تنشئ نسخة من الكائن المحلي المشار إليه بـ \fIlocobj\fP. .P إذا كان \fIlocobj\fP هو \fBLC_GLOBAL_LOCALE\fP، فإن \fBduplocale\fP() تنشئ كائنًا محليًا يحتوي على نسخة من المحلية العامة المحددة بواسطة \fBsetlocale\fP(3). .SH "قيمة الإرجاع" عند النجاح، تُرجع \fBduplocale\fP() مقبضًا للكائن المحلي الجديد. عند الخطأ، تُرجع \fI(locale_t)\ 0\fP، وتضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBENOMEM\fP ذاكرة غير كافية لإنشاء نسخة الكائن المحلي. .SH المعايير POSIX.1\-2008. .SH التاريخ glibc 2.3. .SH ملاحظات يمكن أن يخدم نسخ محلية الأغراض التالية: .IP \[bu] 3 لإنشاء نسخة من كائن محلي سيتم تعديل فئة أو أكثر فيه (باستخدام \fBnewlocale\fP(3)). .IP \[bu] للحصول على مقبض للمحلية الحالية الذي يمكن استخدامه في دوال أخرى تستخدم مقبض محلية، مثل \fBtoupper_l\fP(3). يتم ذلك بتطبيق \fBduplocale\fP() على القيمة المُرجعة من الاستدعاء التالي: .IP .in +4n .EX loc = uselocale((locale_t) 0); .EE .in .IP هذه التقنية ضرورية، لأن استدعاء \fBuselocale\fP(3) أعلاه قد يُرجع القيمة \fBLC_GLOBAL_LOCALE\fP، مما يؤدي إلى سلوك غير محدد إذا تم تمريره إلى دوال مثل \fBtoupper_l\fP(3). يمكن استخدام استدعاء \fBduplocale\fP() لضمان تحويل قيمة \fBLC_GLOBAL_LOCALE\fP إلى كائن محلي قابل للاستخدام. انظر الأمثلة أدناه. .P يجب تحرير كل كائن محلي تم إنشاؤه بواسطة \fBduplocale\fP() باستخدام \fBfreelocale\fP(3). .SH أمثلة البرنامج أدناه يستخدم \fBuselocale\fP(3) و \fBduplocale\fP() للحصول على مقبض للمحلية الحالية الذي يُمرر بعد ذلك إلى \fBtoupper_l\fP(3). يأخذ البرنامج وسيطًا واحدًا من سطر الأوامر، سلسلة محارف تُحوَّل إلى أحرف كبيرة وتُعرض على المخرجات القياسية. مثال على استخدامه هو التالي: .P .in +4n .EX $\fB ./a.out abc\fP; ABC .EE .in .SS "مصدر البرنامج" .\" SRC BEGIN (duplocale.c) \& .EX #define _XOPEN_SOURCE 700 #include #include #include #include #include \& int main(int argc, char *argv[]) { locale_t loc, nloc; \& if (argc != 2) { fprintf(stderr, "Usage: %s string\[rs]n", argv[0]); exit(EXIT_FAILURE); } \& /* This sequence is necessary, because uselocale() might return the value LC_GLOBAL_LOCALE, which can\[aq]t be passed as an argument to toupper_l(). */ \& loc = uselocale((locale_t) 0); if (loc == (locale_t) 0) err(EXIT_FAILURE, "uselocale"); \& nloc = duplocale(loc); if (nloc == (locale_t) 0) err(EXIT_FAILURE, "duplocale"); \& for (char *p = argv[1]; *p; p++) putchar(toupper_l(*p, nloc)); \& printf("\[rs]n"); \& freelocale(nloc); \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "انظر أيضًا" \fBfreelocale\fP(3), \fBnewlocale\fP(3), \fBsetlocale\fP(3), \fBuselocale\fP(3), \fBlocale\fP(5), \fBlocale\fP(7) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .