.\" -*- coding: UTF-8 -*- .\" Copyright 2006-2008, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH brk 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم brk, sbrk \- تغيير حجم مقطع البيانات .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint brk(void *\fP\fIaddr\fP\fB);\fP \fBvoid *sbrk(intptr_t \fP\fIincrement\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBbrk\fP()، \fBsbrk\fP()(): .nf .\" (_XOPEN_SOURCE >= 500 || .\" _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) && .\" (_XOPEN_SOURCE >= 500 || .\" _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) && .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED Since glibc 2.19: _DEFAULT_SOURCE || ((_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200112L)) From glibc 2.12 to glibc 2.19: _BSD_SOURCE || _SVID_SOURCE || ((_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200112L)) Before glibc 2.12: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 .fi .SH الوصف تغير \fBbrk\fP() و \fBsbrk\fP() موقع \fIفاصل البرنامج\fP، الذي يحدد نهاية مقطع بيانات العملية (أي فاصل البرنامج هو أول موقع بعد نهاية مقطع البيانات غير المهيأ). زيادة فاصل البرنامج لها تأثير تخصيص ذاكرة للعملية؛ تقليل الفاصل يلغي تخصيص الذاكرة. .P تضبط \fBbrk\fP() نهاية مقطع البيانات إلى القيمة المحددة بواسطة \fIaddr\fP، عندما تكون تلك القيمة معقولة، ويكون لدى النظام ذاكرة كافية، ولا تتجاوز العملية حجم بياناتها الأقصى (انظر \fBsetrlimit\fP(2)). .P تزيد \fBsbrk\fP() مساحة بيانات البرنامج بمقدار \fIincrement\fP بايت. يمكن استخدام استدعاء \fBsbrk\fP() مع \fIincrement\fP بقيمة 0 لإيجاد الموقع الحالي لفاصل البرنامج. .SH "قيمة الإرجاع" عند النجاح، ترجع \fBbrk\fP() صفرًا. عند الخطأ، تُرجع \-1، ويُضبط \fIerrno\fP إلى \fBENOMEM\fP. .P عند النجاح، ترجع \fBsbrk\fP() فاصل البرنامج السابق. (إذا زيد الفاصل، فإن هذه القيمة هي مؤشر إلى بداية الذاكرة المخصصة حديثًا). عند الخطأ، تُرجع \fI(void\ *)\ \-1\fP، ويُضبط \fIerrno\fP إلى \fBENOMEM\fP. .SH المعايير لا شيء. .SH التاريخ .\" .\" .BR brk () .\" and .\" .BR sbrk () .\" are not defined in the C Standard and are deliberately excluded from the .\" POSIX.1-1990 standard (see paragraphs B.1.1.1.3 and B.8.3.3). 4.3BSD؛ SUSv1، موسوم بـ LEGACY في SUSv2، أزيل في POSIX.1\-2001. .SH ملاحظات تجنب استخدام \fBbrk\fP() و \fBsbrk\fP(): حزمة تخصيص الذاكرة \fBmalloc\fP(3) هي الطريقة المحمولة والمريحة لتخصيص الذاكرة. .P .\" One sees .\" \f[I]int\f[] (e.g., XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2), .\" \f[I]ssize_t\f[] (OSF1 2.0, Irix 5.3, 6.5), .\" \f[I]ptrdiff_t\f[] (libc4, libc5, ulibc, glibc 2.0, 2.1), .\" \f[I]intptr_t\f[] (e.g., XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, NetBSD 1.6, .\" Tru64 5.1, glibc2.2). تستخدم أنظمة مختلفة أنواعًا مختلفة لوسيطة \fBsbrk\fP(). الشائعة هي \fIint\fP، \fIssize_t\fP، \fIptrdiff_t\fP، \fIintptr_t\fP. .SS "الاختلافات بين مكتبة C والنواة" قيمة الإرجاع الموصوفة أعلاه لـ \fBbrk\fP() هي السلوك الذي توفره دالة الغلاف glibc لاستدعاء نظام Linux \fBbrk\fP(). (في معظم التطبيقات الأخرى، قيمة الإرجاع من \fBbrk\fP() هي نفسها؛ هذه القيمة حددت أيضًا في SUSv2.) ومع ذلك، فإن استدعاء نظام Linux الفعلي يُرجع فاصل البرنامج الجديد عند النجاح. عند الفشل، يُرجع استدعاء النظام الفاصل الحالي. تقوم دالة الغلاف glibc ببعض العمل (أي تتحقق مما إذا كان الفاصل الجديد أقل من \fIaddr\fP) لتوفير قيم الإرجاع 0 و \-1 الموصوفة أعلاه. .P على Linux، تُنفذ \fBsbrk\fP() كدالة مكتبة تستخدم استدعاء النظام \fBbrk\fP()، وتقوم ببعض المحاسبة الداخلية لتتمكن من إرجاع قيمة الفاصل القديمة. .SH "انظر أيضًا" \fBexecve\fP(2)، \fBgetrlimit\fP(2)، \fBend\fP(3)، \fBmalloc\fP(3) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .