fprintfを使用してパイプに書き込むにはどうすればよいですか?

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

  •  19-08-2019
  •  | 
  •  

質問

パイプを作成し、dup2()を使用してストリーム1 <!> ampを上書きしました。 2(stdout <!> amp; stderr)それらのパイプに。

今、fprintfを使用してストリーム1または2に書き込みたいが、私のプログラムはパイプの反対側で何も受け取っていないようだ。 printf()を使用してみましたが、これがデフォルトでstdoutまたはstream 1に書き込むかどうかはわかりません。ストリーム1に書き込む場合、コードのどこか深いところに問題があると思います。

本質的に、ストリームを表すintが与えられた場合、fprintf()での使用に適したFILE *を取得するにはどうすればよいですか?

役に立ちましたか?

解決

ファイル記述子があり、FILE*が必要な場合は、fdopen

を使用できます
FILE *fdopen(int fd, const char *mode);

man fdopen はPosix関数であり、<= >。逆にするには、 fileno

を使用できます。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top