簡體   English   中英

如何使用 fprintf 並寫入 pipe?

[英]How can I use fprintf and write to a pipe?

我創建了一個 pipe 並使用 dup2() 將流 1 和 2(stdout 和 stderr)覆蓋到這些管道中。

現在我希望使用 fprintf 寫入 stream 1 或 2,但我的程序似乎在 pipe 的另一側沒有收到任何內容。 我試過使用 printf(),但我不確定這是否默認寫入標准輸出或 stream 1。 如果它寫入 stream 1,我猜它在我的代碼更深的地方是一個問題。

本質上我在問,給定一個代表 stream 的 int,我怎樣才能獲得適合在 fprintf() 中使用的 FILE*?

如果你有一個文件描述符並且想要一個FILE* ,你可以使用fdopen

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

fdopen是 Posix function 並記錄在man fdopen中。 要反過來,您可以使用fileno

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM