| strdup(3) | Library Functions Manual | strdup(3) |
الاسم¶
strdup, strndup - نسخ سلسلة محارف
المكتبة¶
مكتبة سي المعيارية (libc، -lc)
موجز¶
#include <string.h>
char *strdup(const char *s);
char *strndup(size_t n;
const char s[n], size_t n);
strdup():
_XOPEN_SOURCE >= 500
|| /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
|| /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
strndup():
منذ glibc 2.10:
_POSIX_C_SOURCE >= 200809L
قبل glibc 2.10:
_GNU_SOURCE
الوصف¶
الدالة strdup() تُرجع مؤشرًا إلى سلسلة محارف جديدة تكون نسخة من السلسلة s. الذاكرة للسلسلة الجديدة تُحصل باستخدام malloc(3)، ويمكن تحريرها باستخدام free(3).
الدالة strndup() مشابهة، لكنها تنسخ على الأكثر n بايت. إذا كان s أطول من n، يُنسخ فقط n بايت، ويُضاف بايت فارغ ختامي ('\0').
قيمة الإرجاع¶
عند النجاح، تُرجع الدالة strdup() مؤشرًا إلى السلسلة المنسوخة. تُرجع NULL إذا لم تكن ذاكرة كافية متاحة، مع تعيين errno للإشارة إلى الخطأ.
الأخطاء¶
- ENOMEM
- الذاكرة المتاحة غير كافية لتخصيص سلسلة مكررة.
السمات¶
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
| الواجهة | السمة | القيمة |
| strdup(), strndup() | سلامة الخيوط | MT-Safe |
المعايير¶
POSIX.1-2008.
التاريخ¶
انظر أيضًا¶
alloca(3), calloc(3), free(3), malloc(3), realloc(3), string(3), strdupa(3), strndupa(3), wcsdup(3)
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 25 فبراير 2026 | صفحات دليل لينكس (لم تصدر بعد) |