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

الأخطاء

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

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
strdup(), strndup() | سلامة الخيوط | MT-Safe

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

التاريخ

strdup()
    SVr4, 4.3BSD-Reno, POSIX.1-2001.

strndup()
    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 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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