English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل الأساسيات بلغة C

لغة C التحكم في العملية

الوظائف في لغة C

المجمعات في لغة C

الإشارات في لغة C

النصوص في لغة C

مباني C

ملفات C

C أخرى

دليل مرجع لغة C

استخدام وظيفة مكتبة C setvbuf() ومثال

مكتبة C القياسية - <stdio.h>

وظيفة مكتبة C int setvbuf(FILE *stream, char *buffer, int mode, size_t size) تحديد كيفية تخزين تدفق الاستream.

الإعلان

إعلان وظيفة setvbuf()

int setvbuf(FILE *stream, char *buffer, int mode, size_t size)

المتغيرات

  • stream -- هذا هو عرض ملف FILE، الذي هو مفتوح.
  • buffer -- هذا هو التخزين المخصص للمستخدم. إذا تم تعيينه على NULL، فإن الوظيفة ستقوم بتخصيص تخزين معين الحجم تلقائيًا.
  • mode -- هذا يحدد نمط تخزين ملف.
نمطوصف
_IOFBFتخزين كامل: للإخراج، يتم كتابة البيانات عند ملء التخزين مرة واحدة. للإدخال، يتم ملء التخزين عند طلب الإدخال وكونه فارغًا، حتى يظهر الخط الفاصل التالي.
_IOLBFتخزين سطر: للإخراج، يتم كتابة البيانات عند وجود خط فاصل أو عندما يتم ملء التخزين، اعتمادًا على الحالة.
_IONBFبدون تخزين: لا يستخدم التخزين. يتم كتابة كل عملية I/O على الفور.
  • size -- هذا هو حجم التخزين بالبites.

القيمة العائدة

إذا كانت النتيجة ناجحة، فإن الوظيفة تعود 0، وإلا تعود قيمة غير صفر.

مثال عبر الإنترنت

المثال التالي يوضح استخدام وظيفة setvbuf().

#include <stdio.h>
int main()
{
   char buff[1024];
   memset( buff, '\0', sizeof( buff ));
   fprintf(stdout, "تم تمكين التخزين الكامل\n");
   setvbuf(stdout, buff, _IOFBF, 1024);
   fprintf(stdout, "هذه هي oldtoolbag.com\n");
   fprintf(stdout, "سيتم حفظ هذا الخروج في buff\n");
   fflush( stdout );
   fprintf(stdout, "هذا سيحدث أثناء البرمجة\n");
   fprintf(stdout, "تسقط بعد خمسة ثواني\n");
   sleep(5);
   return(0);
}

لنقوم بترميز وتشغيل البرنامج أعلاه، مما ينتج النتيجة التالية. هنا، يخزن البرنامج输出发خرت buff،حتى أول استدعاء fflush() ثم بدء التخزين، ثم الاستيقاظ بعد خمس ثوان. سيتم إرسال الناتج المتبقي إلى STDOUT قبل انتهاء البرنامج.

تمكين التخزين الكامل
هذا هو oldtoolbag.com
سيتم حفظ الناتج في buff
هذا سيحدث أثناء البرمجة
الاستيقاظ بعد خمس ثوان

مكتبة C القياسية - <stdio.h>