freopen
#include <stdio.h>
FILE *freopen(const char *filename, const char *mode, FILE *stream);
freopen는 열린 스트림을 주어진 파일로 대치한다. 파일 열기의 성공적여부에 관계없이 스트림을 닫는다. freopen은 stdin, stdout, stderr에 연관된 파일을 변경할 때 유용하다.
r 읽기 만을 위해 연다.
w 쓰기 위해 생성한다.
a 부가, 파일의 끝에서 쓰기를 위해 열기, 또는 파일이 없는 경우에 쓰기를 위해 생성한다.
r+ 파일을 갱신하기 위해 이미 있던 파일을 연다.
w+ 갱신을 위해 새로운 파일을 생성한다.
a+ 부가시키기 위해 열기. 파일 끝부분에서 갱신하기 이해 열거나 새로운 파일을 생성하기 위해 연다.
반환값
성공적으로 수행을 마친 경우 freopen은 인수 stream을 반환한다. 에러가 발생한 경우에는 널을 반환한다.
예제 stdout
#include <stdio.h>
int main(void)
{
/* redirect standard output to a file */
if (freopen("OUTPUT.FIL", "w", stdout) == NULL)
fprintf(stderr, "error redirecting stdout\n");
/* this output will go to a file 파일스트림에 써지게된다. */
printf("This will go into a file.");
/* close the standard output stream 닫고 파일작성*/
fclose(stdout);
//restore stdout to monitor for linux
freopen("/dev/tty", "w", stdout);
freopen("CON", "w", stdout);//window CON or CON:
return 0;
}
예제2 stdin
#include <stdio.h>
int main(void)
{
/* redirect standard input to a file */
if (freopen("INPUT.FIL", "r", stdin) == NULL)
fprintf(stderr, "error redirecting stdin\n");
fclose(stdin);
//restore stdin from keyboard(terminal) for linux
freopen("/dev/tty", "r", stdin);
//freopen("CON", "r", stdin);//window CON or CON:
return 0;
}
'Program Language > C' 카테고리의 다른 글
signal handler 고찰 (0) | 2011.06.03 |
---|---|
fopen 과 fscanf로 읽어들이기 (0) | 2011.05.31 |
exec함수 군 (0) | 2011.04.19 |
gcc -D (0) | 2011.01.13 |
PAPI - Performance Application Programming Interface (0) | 2010.12.30 |
댓글