Scroll to navigation

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);

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

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 للإشارة إلى الخطأ.

الأخطاء

الذاكرة المتاحة غير كافية لتخصيص سلسلة مكررة.

السمات

للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).

الواجهة السمة القيمة
strdup(), strndup() سلامة الخيوط MT-Safe

المعايير

POSIX.1-2008.

التاريخ

SVr4, 4.3BSD-Reno, POSIX.1-2001.
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 صفحات دليل لينكس (لم تصدر بعد)