C يعادل autoflush (المعياري دافق بعد كل الكتابة)؟

StackOverflow https://stackoverflow.com/questions/214271

  •  03-07-2019
  •  | 
  •  

سؤال

في بيرل، ويمكنني أن اكتب:

$|++;

ووسوف أي شيء المطبوعة إلى STDOUT يكون fflush تلقائيا () أد.

هل هناك ما يعادلها في C؟ وبعبارة أخرى، هل هناك طريقة استطيع ان اقول stdio إلى fflush تلقائيا المعياري بعد كل printf ()، والطريقة التي تمسح تلقائيا ستدير؟

هل كانت مفيدة؟

المحلول

وحاول setvbuf(stdout, NULL, _IONBF, 0). ومن التغييرات stdout إلى وضع غير مصقول (_IONBF).

نصائح أخرى

وأنا لم تفعل هذا، ولكن _IOLBF سيكون الجواب الصحيح.

و$ الرجل setvbuf
...
الاسم
setvbuf - تعيين التخزين المؤقت للتيار

موجز
# تشمل

   int setvbuf(FILE *restrict stream, char *restrict buf, int type,
          size_t size);

والوصف
يمكن استخدام الدالة setvbuf () بعد أشار تيار إليها ويرتبط مع تيار ملف مفتوح ولكن قبل أي عملية أخرى (بخلاف مكالمة غير ناجحة لsetvbuf ()) يتم تنفيذ على        مجرى. نوع حجة يحدد كيف يتم مخزنة تيار، على النحو التالي:

    * {_IOFBF} shall cause input/output to be fully buffered.

    * {_IOLBF} shall cause input/output to be line buffered.

    * {_IONBF} shall cause input/output to be unbuffered.

ونلقي نظرة على setbuf () وsetvbuf ().

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top