- trixie-backports 4.31.0-1~bpo13+1
- testing 4.31.0-1
- unstable 4.31.0-1
| strcpy(3) | Library Functions Manual | strcpy(3) |
الاسم¶
stpcpy، strcpy، strcat - نسخ أو تسلسل سلسلة محارف
المكتبة¶
مكتبة سي المعيارية (libc، -lc)
موجز¶
#include <string.h>
char *stpcpy(char *restrict dst, const char *restrict src); char *strcpy(char *restrict dst, const char *restrict src); char *strcat(char *restrict dst, const char *restrict src);
stpcpy():
منذ glibc 2.10:
_POSIX_C_SOURCE >= 200809L
قبل glibc 2.10:
_GNU_SOURCE
الوصف¶
- stpcpy()
- strcpy()
- تنسخ هذه الدوال السلسلة المحارف المشار إليها بواسطة src، إلى سلسلة محارف في المخزن المؤقت المشار إليه بواسطة dst. يتحمل المبرمج مسؤولية تخصيص مخزن مؤقت وجهة كبير بما يكفي، أي strlen(src) + 1. للفرق بين الدالتين، انظر قيمة الإرجاع.
- strcat()
- تسلسل هذه الدالة سلسلة المحارف المشار إليها بواسطة src، بعد سلسلة المحارف المشار إليها بواسطة dst (مع الكتابة فوق بايت الصفر الختامي). المبرمج مسؤول عن تخصيص مخزن وجهة كبير بما يكفي، أي strlen(dst) + strlen(src) + 1.
قد يكون تنفيذ هذه الدوال كالتالي:
char *
stpcpy(char *restrict dst, const char *restrict src)
{
char *p;
p = mempcpy(dst, src, strlen(src));
*p = '\0';
return p;
}
char *
strcpy(char *restrict dst, const char *restrict src)
{
stpcpy(dst, src);
return dst;
}
char *
strcat(char *restrict dst, const char *restrict src)
{
stpcpy(dst + strlen(dst), src);
return dst;
}
قيمة الإرجاع¶
السمات¶
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
| الواجهة | السمة | القيمة |
| stpcpy(), strcpy(), strcat() | سلامة الخيوط | MT-Safe |
المعايير¶
المعايير¶
تحذيرات¶
قد لا تتداخل سلسلتا المحارف src و dst.
إذا لم يكن المخزن الوجهة كبيرًا بما يكفي، فالسلوك غير محدد. انظر _FORTIFY_SOURCE في feature_test_macros(7).
يمكن أن تكون strcat() غير فعالة جدًا. اقرأ عن شلميئيل الرسام.
أمثلة¶
#include <err.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(void)
{
char *p;
char *buf1;
char *buf2;
size_t len, maxsize;
maxsize = strlen("Hello ") + strlen("world") + strlen("!") + 1;
buf1 = malloc(sizeof(*buf1) * maxsize);
if (buf1 == NULL)
err(EXIT_FAILURE, "malloc()");
buf2 = malloc(sizeof(*buf2) * maxsize);
if (buf2 == NULL)
err(EXIT_FAILURE, "malloc()");
p = buf1;
p = stpcpy(p, "Hello ");
p = stpcpy(p, "world");
p = stpcpy(p, "!");
len = p - buf1;
printf("[len = %zu]: ", len);
puts(buf1); // "Hello world!"
free(buf1);
strcpy(buf2, "Hello ");
strcat(buf2, "world");
strcat(buf2, "!");
len = strlen(buf2);
printf("[len = %zu]: ", len);
puts(buf2); // "Hello world!"
free(buf2);
exit(EXIT_SUCCESS);
}
انظر أيضًا¶
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 15 يونيو 2024 | صفحات دليل لينكس 6.9.1 |