다음을 통해 공유


freopen, _wfreopen

파일 포인터를 다시 할당 합니다.보다 안전한 버전의이 함수를 사용할 수 있습니다. see freopen_s, _wfreopen_s.

FILE *freopen( 
   const char *path,
   const char *mode,
   FILE *stream 
);
FILE *_wfreopen( 
   const wchar_t *path,
   const wchar_t *mode,
   FILE *stream 
);

매개 변수

  • path
    새 파일의 경로입니다.

  • mode
    허용 되는 액세스 유형입니다.

  • stream
    포인터를 FILE 구조체입니다.

반환 값

이들 각이 함수에 대 한 포인터 새로 연된 파일에 반환합니다.오류가 발생, 원래 파일이 닫혀 및 함수 반환은 NULL 포인터 값입니다.경우 path, mode, 또는 stream 가 null 포인터인 경우 filename 빈 문자열인에 설명 된 대로 이러한 함수를 잘못 된 매개 변수 처리기를 호출 매개 변수 유효성 검사.실행을 계속 허용 되 면 이러한 함수를 설정 errno 에 EINVAL 를 반환 하 고 NULL.

참조 하십시오 _sys_nerr, _doserrno, errno, _sys_errlist, 는 이러한 및 기타 오류 코드에 대 한 자세한 내용은.

설명

보다 안전한 버전의이 함수는 존재를 참조 하십시오 freopen_s, _wfreopen_s.

freopen 함수는 현재와 관련 된 파일을 닫습니다 stream 및 재지정 stream 에 의해 지정 된 파일 path*.*_wfreopen 의 와이드 문자 버전인 _freopen. path 및 mode 인수를 _wfreopen 와이드 문자 문자열입니다._wfreopen및 _freopen 그렇지를 동일 하 게 동작 합니다.

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

_UNICODE 및 _Mbcs가 정의 되어 있지 않습니다

_Mbcs가 정의

_Unicode가 정의

_tfreopen

freopen

freopen

_wfreopen

freopen일반적으로 pre-opened 파일을 보내는 데 사용 stdin, stdout, 및 stderr 사용자가 지정한 파일에.와 관련 된 새 파일 stream 와 연 mode*,* 같이 파일에 대해 요청 된 액세스 유형을 지정 문자열:

  • "r"
    읽기 위해 엽니다.파일이 존재 하지 않거나 찾을 수 없는 경우는 freopen 호출이 실패 합니다.

  • "w"
    쓰기에 대 한 빈 파일을 엽니다.지정 된 파일이 있으면 해당 내용이 삭제 됩니다.

  • "a"
    (파일; 새 데이터를 쓰기 전에 EOF 표식을 제거 하지 않고 추가) 파일의 끝 쓰기에 대 한 열립니다. 존재 하지 않는 경우 파일을 먼저 만듭니다.

  • "r+"
    읽기와 쓰기에 대 한 열립니다.(파일이 있어야 합니다.)

  • "w+"
    읽기와 쓰기에 대 한 빈 파일을 엽니다.지정 된 파일이 있으면 해당 내용이 삭제 됩니다.

  • "a+"
    읽고 추가 엽니다. 추가 작업 새 데이터가 파일에 기록 되 고 EOF 표식 작성이 완료 된 후 복원 전에 EOF 표식의 제거를 포함 합니다. 존재 하지 않는 경우 파일을 먼저 만듭니다.

사용은 "w" 및 "w+" 형식 주의 기울여 기존 파일을 파괴 하는 것입니다.

파일이 열릴 때에 "a" 또는 "a+" 액세스 형식, 모든 작업 발생 하기 때문에 파일 끝에 쓰기.파일 포인터를 사용 하 여 위치가 변경 될 수 있지만 fseek 또는 rewind, 모든 쓰기 작업을 수행 하기 전에 파일 포인터 항상 뒤로 파일 끝으로 이동 합니다.따라서, 기존 데이터를 덮어쓸 수 없습니다.

"a" 모드 제거 하지 않습니다 EOF 표식 파일에 추가 하기 전에.추가 발생 한 후 MS-DOS TYPE 명령을 원래 EOF 표식 최대 데이터 및 파일에 추가 된 데이터를 보여 줍니다."a+" 모드를 파일에 추가 하기 전에 EOF 표식을 제거 하지.추가한 후 파일의 모든 데이터 MS-DOS TYPE 명령을 보여 줍니다."a+" 모드 CTRL + Z EOF 표식으로 종료 되는 스트림 파일에 추가 위해서 필요 합니다.

경우는 "r+", "w+", 또는 "a+" 액세스 유형을 지정한 경우에 읽기와 쓰기 허용 됩니다 (파일 열기 "업데이트" 라고).그러나 읽기 및 쓰기 간에 전환 하면 있어야는 개입 fsetpos, fseek, 또는 되감기 작업 합니다.현재 위치를 지정할 수는 fsetpos 또는 fseek 작업을 원하는 경우.위의 값 외에 다음 문자 중 하나가 포함 될 수 있습니다는 mode 새 줄에 대 한 변환 모드를 지정 하는 문자열입니다.

  • t
    열기 텍스트에서 (번역) 모드입니다. 캐리지 – 줄 바꿈 (CR-LF) 조합은 단일 줄 바꿈 (LF) 문자 입력 변환. LF 문자 CR-LF 조합 출력으로 변환 됩니다.또한 CTRL + Z는 파일 끝 문자로 입력으로 해석 됩니다.쓰기 및 읽기에 대 한 읽기에 대 한 열린 파일에서 "a+"에서 런타임 라이브러리 파일의 끝에 CTRL + Z에 대 한 확인 하 고 가능 하면 제거 합니다.이 사용 하 여 수행 됩니다 fseek 및 ftell 내에서 파일을 이동 합니다 발생할 수 있습니다 fseek 파일의 끝 부분을 제대로 동작 합니다.t 옵션 ANSI 휴대성을 원하는 위치를 사용할 수 없습니다의 Microsoft 확장입니다.

  • b
    이진 (변환 되지 않은) 모드에서 열기 위의 번역은 표시 되지 않습니다.

경우 t 또는 b 주어 지지 않았기 mode, 기본 변환 모드는 전역 변수로 정의 된 _fmode.경우 t 또는 b 인수, 함수 실패 및 반환에 접두사가 NULL.

텍스트 및 이진 모드에 대 한 설명은 참조 하십시오. 텍스트 및 이진 모드 파일 I/O.

요구 사항

Function

필수 헤더

freopen

<stdio.h>

_wfreopen

<stdio.h> 또는 <wchar.h>

콘솔에서 지원 되지 않습니다 Windows 스토어 응용 프로그램입니다.콘솔에 연결 된 표준 스트림 핸들 stdin, stdout, 및 stderr, C 런타임 함수를 사용 하기 전에 이동 해야 Windows 스토어 응용 프로그램입니다.추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

// crt_freopen.c
// compile with: /W3
// This program reassigns stderr to the file
// named FREOPEN.OUT and writes a line to that file.
#include <stdio.h>
#include <stdlib.h>

FILE *stream;

int main( void )
{
   // Reassign "stderr" to "freopen.out": 
   stream = freopen( "freopen.out", "w", stderr ); // C4996
   // Note: freopen is deprecated; consider using freopen_s instead

   if( stream == NULL )
      fprintf( stdout, "error on freopen\n" );
   else
   {
      fprintf( stdout, "successfully reassigned\n" ); fflush( stdout );
      fprintf( stream, "This will go to the file 'freopen.out'\n" );
      fclose( stream );
   }
   system( "type freopen.out" );
}
  

해당 .NET Framework 항목

참고 항목

참조

스트림 I/O

fclose, _fcloseall

_fdopen, _wfdopen

_fileno

통해, _wfopen

_open, _wopen

_setmode