stdout 출력을 file로 redirect하기

LISP에서 사용하는 (with-open-file)과 비슷한 기능을 사용하려 한다. dupfreopen, fdopen을 사용하면 된다.

#include <stdio.h>

int old_stdout = dup(STDOUT_FILENO);
freopen("file.txt", "w", stdout);
printf("Hello World\n");
fclose(stdout);

stdout = fdopen(old_stdout, "w");
printf("Hello World\n");
close(old_stdout);

댓글