.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1980-1991, Regents of the University of California. .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH setbuf 3 "21 سبتمبر 2025" "صفحات دليل لينكس 6.18" .SH الاسم setbuf, setbuffer, setlinebuf, setvbuf \- عمليات التخزين المؤقت للدفق .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint setvbuf(\fPsize_t size; \fB FILE *restrict \fP\fIstream\fP\fB, char \fP\fIbuf\fP\fB[restrict \fP\fIsize\fP\fB],\fP \fB int \fP\fImode\fP\fB, size_t \fP\fIsize\fP\fB);\fP .P \fBvoid setbuf(FILE *restrict \fP\fIstream\fP\fB, char *restrict \fP\fIbuf\fP\fB);\fP \fBvoid setbuffer(\fPsize_t size; \fB FILE *restrict \fP\fIstream\fP\fB, char \fP\fIbuf\fP\fB[restrict \fP\fIsize\fP\fB],\fP \fB size_t \fP\fIsize\fP\fB);\fP \fBvoid setlinebuf(FILE *\fP\fIstream\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBsetbuffer\fP()، \fBsetlinebuf\fP(): .nf منذ glibc 2.19: _DEFAULT_SOURCE glibc 2.19 وما قبله: _BSD_SOURCE .fi .SH الوصف الأنواع الثلاثة للتخزين المؤقت المتاحة هي: غير مخزّن، مخزّن بالكتل، ومخزّن بالسطور. عندما يكون دفق الإخراج غير مخزّن، تظهر المعلومات في الملف الوجهة أو الطرفية فور كتابتها؛ عندما يكون مخزّناً بالكتل، تُحفَظ العديد من المحارف وتُكتب ككتلة واحدة؛ عندما يكون مخزّناً بالسطور، تُحفَظ المحارف حتى يُخرج سطر جديد أو يُقرأ إدخال من أي دفق موصول بجهاز طرفي (عادةً \fIstdin\fP). يمكن استخدام الدالة \fBfflush\fP(3) لإجبار الكتلة على الخروج مبكراً. (انظر \fBfclose\fP(3).) .P عادةً، جميع الملفات مخزّنة بالكتل. إذا كان الدفق يشير إلى طرفية (كما يفعل \fIstdout\fP عادةً)، فإنه يُخزّن بالسطور. دفق الخطأ المعياري \fIstderr\fP يكون دائماً غير مخزّن مبدئياً. .P يمكن استخدام الدالة \fBsetvbuf\fP() على أي دفق مفتوح لتغيير خبيئته. يجب أن يكون المعامل \fImode\fP واحداً من وحدات الماكرو الثلاث التالية: .RS .TP \fB_IONBF\fP غير مخزّن .TP \fB_IOLBF\fP مخزّن بالسطور .TP \fB_IOFBF\fP مخزّن بالكامل .RE .P باستثناء الملفات غير المخزّنة، يجب أن يشير المعامل \fIbuf\fP إلى خبيئة بطول \fIsize\fP بايت على الأقل؛ ستُستخدم هذه الخبيئة بدلاً من الخبيئة الحالية. إذا كان المعامل \fIbuf\fP هو NULL، يتأثر الوضع فقط؛ سيُخصص خبيئة جديدة في عملية القراءة أو الكتابة التالية. يمكن استخدام الدالة \fBsetvbuf\fP() فقط بعد فتح الدفق وقبل تنفيذ أي عمليات أخرى عليه. .P الاستدعاءات الثلاثة الأخرى هي، في الواقع، مجرد أسماء مستعارة لاستدعاءات \fBsetvbuf\fP(). الدالة \fBsetbuf\fP() مكافئة تماماً للاستدعاء .P .in +4n setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ); .in .P الدالة \fBsetbuffer\fP() هي نفسها، باستثناء أن حجم الخبيئة متروك للمستدعي، بدلاً من تحديده بواسطة \fBBUFSIZ\fP المبدئي. الدالة \fBsetlinebuf\fP() مكافئة تماماً للاستدعاء: .P .in +4n setvbuf(stream, NULL, _IOLBF, 0); .in .SH "قيمة الإرجاع" تُرجع الدالة \fBsetvbuf\fP() 0 عند النجاح. تُرجع قيمة غير صفرية عند الفشل (\fImode\fP غير صالح أو لا يمكن تلبية الطلب). قد تُعيِّن \fIerrno\fP عند الفشل. .P الدوال الأخرى لا ترجع قيمة. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBsetbuf\fP()، \fBsetbuffer\fP()، \fBsetlinebuf\fP()، \fBsetvbuf\fP() T} سلامة الخيوط MT\-Safe .TE .SH المعايير .TP \fBsetbuf\fP() .TQ \fBsetvbuf\fP() C11, POSIX.1\-2008. .SH التاريخ .TP \fBsetbuf\fP() .TQ \fBsetvbuf\fP() C89, POSIX.1\-2001. .SH تحذيرات .\" https://www.austingroupbugs.net/view.php?id=397#c799 .\" 0000397: setbuf and errno يذكر POSIX أن قيمة \fIerrno\fP غير محددة بعد استدعاء \fBsetbuf\fP()، ويذكر أيضًا أنه نظرًا لعدم اشتراط بقاء قيمة \fIerrno\fP دون تغيير بعد استدعاء ناجح لـ \fBsetbuf\fP()، يجب على التطبيقات استخدام \fBsetvbuf\fP() بدلاً من ذلك لاكتشاف الأخطاء. .SH العلل .\" The .\" .BR setbuffer () .\" and .\" .BR setlinebuf () .\" functions are not portable to versions of BSD before 4.2BSD, and .\" are available under Linux since libc 4.5.21. .\" On 4.2BSD and 4.3BSD systems, .\" .BR setbuf () .\" always uses a suboptimal buffer size and should be avoided. .\".P يجب التأكد من أن المساحة التي يشير إليها \fIbuf\fP لا تزال موجودة عند إغلاق \fIstream\fP، والذي يحدث أيضًا عند إنهاء البرنامج. على سبيل المثال، ما يلي غير صالح: .P .\" SRC BEGIN (setbuf.c) .EX #include \& int main(void) { char buf[BUFSIZ]; \& setbuf(stdout, buf); printf("Hello, world!\[rs]n"); return 0; } .EE .\" SRC END .SH "انظر أيضًا" \fBstdbuf\fP(1)، \fBfclose\fP(3)، \fBfflush\fP(3)، \fBfopen\fP(3)، \fBfread\fP(3)، \fBmalloc\fP(3)، \fBprintf\fP(3)، \fBputs\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 .