- ベストアンサー
標準出力先を変える
Windowsで作ったソフトをコマンドラインから実行するときに例えば prog.exe > test.txt のようにするとリダイレクトして標準出力をtest.txtにすることは出来ますが、これをプログラムの中で変えることは出来ますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
freopen()という標準関数があります。 freopen("test.txt", "w", stdout); とするとリダイレクトができます。 もどすには freopen("CON", "w", stdout); とすればいいようです。 (以下のプログラムで確認。XPのコマンドプロンプト上で) ---------------- #include <stdio.h> int main() { printf("abc"); freopen("test.txt", "w", stdout); printf("def"); freopen("CON", "w", stdout); printf("ghi"); return 0; } ---------------- ただし、こういうややこしいことは、 個人的にはあまりお勧めはしません。(なんとなく)
その他の回答 (1)
- mi-si
- ベストアンサー率35% (200/567)
回答No.1
freopenを使います。 #include <stdio.h> int main() { freopen("test.txt","w",stdout); printf("testscript\n"); return 0; }
補足
ありがとうございます。 ちなみに、標準出力をソケットにするなんてことは出来ますか?