stdout をソケットにリダイレクトしようとしています。私はこのようなことをします:
dup2(new_fd, STDOUT_FILENO);
その後stdio
、stdout に書き込むすべての関数が失敗します。私はこの方法でstdoutを再開しようとしました:
fclose(stdout);
stdout = fdopen(STDOUT_FILENO, "wb");
しかしprintf
、他の機能はまだ機能しません。
編集:
そもそも問題を誤解していたことを恐れています。さらにデバッグした後、これが実際の問題であることがわかりました。
printf("Test"); // We get Broken pipe here
// Reconnect new_fd
dup2(new_fd, STDERR_FILENO);
printf("Test"); // This also returns Broken pipe despite that stdout is fine now
ありがとう。