fprintfを使用してパイプに書き込むにはどうすればよいですか?
質問
パイプを作成し、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
所属していません StackOverflow