.\" -*- coding: UTF-8 -*- '\" t .\" 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 stpncpy 3 "25 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم stpncpy, strncpy \- ملء مخزن مؤقت بحجم ثابت ببايتات غير فارغة من سلسلة محارف، مع حشو ببايتات فارغة حسب الحاجة .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBchar *strncpy(\fPsize_t dsize; \fB char \fP\fIdst\fP\fB[restrict \fP\fIdsize\fP\fB], const char *restrict \fP\fIsrc\fP\fB,\fP \fB size_t \fP\fIdsize\fP\fB);\fP \fBchar *stpncpy(\fPsize_t dsize; \fB char \fP\fIdst\fP\fB[restrict \fP\fIdsize\fP\fB], const char *restrict \fP\fIsrc\fP\fB,\fP \fB size_t \fP\fIdsize\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBstpncpy\fP(): .nf منذ glibc 2.10: _POSIX_C_SOURCE >= 200809L قبل glibc 2.10: _GNU_SOURCE .fi .SH الوصف تنسخ هذه الدوال بايتات غير فارغة من سلسلة المحارف المشار إليها بـ \fIsrc\fP إلى المصفوفة المشار إليها بـ \fIdst\fP. إذا كان المصدر يحتوي على بايتات غير فارغة قليلة جدًا لملء الوجهة، تقوم الدوال بحشو الوجهة ببايتات فارغة في النهاية. إذا كان المخزن المؤقت للوجهة، المحدود بحجمه، غير كبير بما يكفي لاستيعاب النسخة، فسيتم اقتطاع تسلسل المحارف الناتج. للفرق بين الدالتين، انظر قيمة الإرجاع. .TP \fBstrncpy\fP() يكافئ .IP .in +4n .EX stpncpy(dst, src, dsize), dst .EE .in .TP \fBstpncpy\fP() يكافئ .IP .in +4n .EX memset(mempcpy(dst, src, strnlen(src, dsize)), \[aq]\[rs]0\[aq], dsize \- strnlen(src, dsize)) .EE .in .SH "قيمة الإرجاع" .TP \fBstrncpy\fP() تُرجع \fIdst\fP. .TP \fBstpncpy\fP() تُرجع مؤشرًا إلى ما بعد آخر محرف غير فارغ كُتب، أي \fIdest\ +\ strnlen(src,\ n)\fP. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBstpncpy\fP(), \fBstrncpy\fP() T} سلامة الخيوط MT\-Safe .TE .SH المعايير .TP \fBstrncpy\fP() C11, POSIX.1\-2008. .TP \fBstpncpy\fP() POSIX.1\-2008. .SH التاريخ .TP \fBstrncpy\fP() C89, POSIX.1\-2001, SVr4, 4.3BSD. .TP \fBstpncpy\fP() glibc 1.07. POSIX.1\-2008. .SH تحذيرات اسم هذه الدوال مضلل. تنتج هذه الدوال تسلسل محارف مُحشو بأصفار، وليس سلسلة محارف (انظر \fBstring_copying\fP(7)). على سبيل المثال: .P .in +4n .EX strncpy(buf, "1", 5); // { \[aq]1\[aq], 0, 0, 0, 0 } strncpy(buf, "1234", 5); // { \[aq]1\[aq], \[aq]2\[aq], \[aq]3\[aq], \[aq]4\[aq], 0 } strncpy(buf, "12345", 5); // { \[aq]1\[aq], \[aq]2\[aq], \[aq]3\[aq], \[aq]4\[aq], \[aq]5\[aq] } strncpy(buf, "123456", 5); // { \[aq]1\[aq], \[aq]2\[aq], \[aq]3\[aq], \[aq]4\[aq], \[aq]5\[aq] } .EE .in .P من المستحيل التمييز بين الاقتطاع من نتيجة الاستدعاء، وبين تسلسل محارف يناسب المخزن المؤقت للوجهة تمامًا؛ يجب اكتشاف الاقتطاع بمقارنة طول سلسلة المحارف المدخلة مع حجم المخزن المؤقت للوجهة. .P إذا كنت ستستخدم هذه الدالة في استدعاءات متسلسلة، فسيكون من المفيد تطوير دالة مماثلة تقبل مؤشرًا إلى النهاية (واحد بعد آخر عنصر) من المخزن المؤقت للوجهة بدلاً من حجمه. .SH أمثلة .\" SRC BEGIN (stpncpy.c) .EX #include #include #include #include \& int main(void) { char *p; char buf1[20]; char buf2[20]; size_t len; \& if (sizeof(buf2) < strlen("Hello world!")) errx("strncpy: truncating character sequence"); strncpy(buf2, "Hello world!", sizeof(buf2)); len = strnlen(buf2, sizeof(buf2)); \& printf("[len = %zu]: ", len); fwrite(buf2, 1, len, stdout); putchar(\[aq]\[rs]n\[aq]); \& if (sizeof(buf1) < strlen("Hello world!")) errx("stpncpy: truncating character sequence"); p = stpncpy(buf1, "Hello world!", sizeof(buf1)); len = p \- buf1; \& printf("[len = %zu]: ", len); fwrite(buf1, 1, len, stdout); putchar(\[aq]\[rs]n\[aq]); \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "انظر أيضًا" \fBwcpncpy\fP(3), \fBstring_copying\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 .