كيف كنت واضحة مخازن الانتاج عندما الشوك البرنامج؟

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

  •  19-08-2019
  •  | 
  •  

سؤال

ولدي البرنامج الذي يكتب لFILE * cgiOut وبعد ذلك كتبت إلى تيار، ولست بحاجة الى مفترق وتشغيل عملية الخلفية. والمشكلة هي أنه بعد شوكة، وFILE * تيار يبدو أن طرد بعض الأحيان، وأحصل على تكرار الانتاج (بعد مفترق الطرق، وإغلاق كافة الملفات المفتوحة التي أعتقد الأسباب المخازن المؤقتة إلى أن يتم مسح). كيف يمكنني تجنب ذلك؟ أنا لا أريد لإغلاق الملف في عملية رئيسية كما يتم فتحه في مكتبة وأنه هو المقبس أو الأنابيب على ما أعتقد.

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

المحلول

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

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

نصائح أخرى

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