كيف يمكنني استخدام fprintf والكتابة إلى أنبوب؟

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

  •  19-08-2019
  •  | 
  •  

سؤال

لقد قمت بإنشاء أنبوب واستخدمت DUP2 () للكتابة فوق تدفقات 1 و 2 (stdout & stderr) في تلك الأنابيب.

الآن أود استخدام FPRINTF للكتابة إلى دفق 1 أو 2 ، ولكن يبدو أن برنامجي لا يتلقى أي شيء على الجانب الآخر من الأنبوب. لقد حاولت استخدام printf () ، لكنني لست متأكدًا مما إذا كان هذا يكتب إلى stdout أو دفق 1 افتراضيًا. إذا كتبت للبث 1 ، أعتقد أنها مشكلة في مكان ما في الكود الخاص بي.

في الأساس أسأل ، بالنظر إلى int تمثل الدفق ، كيف يمكنني الحصول على ملف* مناسب للاستخدام في fprintf ()؟

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

المحلول

إذا كان لديك واصف ملف وتريد ملف FILE*, ، يمكنك استخدام fdopen

FILE *fdopen(int fd, const char *mode);

fdopen هل وظيفة posix وتوثيق في man fdopen. للقيام بالعكس يمكنك استخدامه fileno

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