_fsopen, _wfsopen

파일 공유 사용 되는 스트림을 엽니다.

FILE *_fsopen( 
   const char *filename,
   const char *mode,
   int shflag 
);
FILE *_wfsopen( 
   const wchar_t *filename,
   const wchar_t *mode,
   int shflag 
);

매개 변수

  • filename
    시작됨파일의 이름입니다.

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

  • shflag
    허용 공유 형식입니다.

반환 값

각이 함수포인터를 스트림으로 반환합니다.Null포인터값이오류를 나타냅니다.경우 filename 또는 mode 입니다 NULL 에 설명 된 대로 이러한 함수잘못된매개 변수처리기는 빈 문자열을 호출 하거나 매개 변수 유효성 검사. 다음이 함수 실행 계속할 수 있는지 여부를 반환 NULL 를 설정 하 고 errno 에 EINVAL.

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

설명

_fsopen함수에서 지정한 파일을 엽니다 filename 를 스트림으로 모드에 의해 정의 된 파일 다음 공유 읽기 또는 쓰기를 위한 준비 및 및 shflag 인수입니다. _wfsopen와이드 문자버전**_fsopen**. filename 및 mode 인수를 _wfsopen 와이드 문자 문자열입니다._wfsopen_fsopen 그렇지을 동일 하 게 작동 합니다.

문자열 mode 는 다음 표에서 같이 파일에 대해 요청 된 액세스 형식을 지정 합니다.

용어

정의

"r"

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

"w"

빈 파일을 쓰기용으로 엽니다.지정 된 파일이 존재 하면 내용이 제거 됩니다.

"a"

(추가); 파일의 끝에서 쓰기에 대 한 열립니다. 존재 하지 않는 경우 파일을 먼저 만듭니다.

"r+"

읽기와 쓰기에 대해 열립니다.(파일이 있어야 합니다.)

"w+"

읽기와 쓰기에 대 한 빈 파일을 엽니다.지정 된 파일이 존재 하면 내용이 제거 됩니다.

"a+"

읽기 및 추가를 엽니다. 존재 하지 않는 경우 파일을 먼저 만듭니다.

사용은 "w" 및 "w+" 기존 파일이 파괴 수 있습니다 대로 신중 하 게 입력 합니다.

파일이 열릴 때에 "a" 또는 "a+" 형식에 액세스할 모든 쓰기 작업이 발생할 파일의 끝에.파일포인터를 사용 하 여 위치가 변경 될 수 있습니다 fseek 또는 rewind, 있지만 모든 쓰기 작업을 수행 하기 전에 항상 다시 파일의 끝에 이동 됩니다.따라서, 기존 데이터를 덮어쓸 수 없습니다.때의 "r+", "w+", 또는 "a+" 액세스 형식을 지정 하 고 읽기와 쓰기 허용 (파일시작됨업데이트에 대 한 것입니다).그러나 읽기 및 쓰기 간에 전환 하면 있어야 개입 된 fsetpos, fseek, 또는 되감기 작업입니다.현재 위치를 지정할 수 있습니다에서 fsetpos 또는 fseek 작업을 원하는 경우.위의 값에는 다음 문자 중 하나가 포함 될 수 있습니다 mode 파일 관리 및 줄 바꿈에 대 한 변환 모드를 지정할 수 있습니다.

용어

정의

t

(번역) 텍스트 모드에서 파일을 엽니다.이 모드에서는 캐리지 return–선바꿈된 (CR-LF) 조합을 단일선바꿈 (LF)에 입력을 번역 및 LF 문자는 출력에서 CR-LF 조합으로 변환 됩니다.또한, CTRL + Z는 파일 끝 문자로 입력 해석 됩니다.열에 대 한 읽기 또는 읽기/쓰기 파일에서 _fsopen 파일의 끝에 CTRL + Z를 검사 하 고, 가능 하면 제거 합니다.이 사용 하 여 수행 됩니다 fseekftell 통해 CTRL + Z로 발생할 수 있는 파일 내에서 이동 합니다 fseek 파일의 끝 근처 제대로 동작 합니다.

b

이진(변환 되지 않은) 모드에서 파일을 엽니다. 위의 번역을 표시 하지 않습니다.

S

캐싱입니다, 최적화, 순차적 액세스 디스크에서 제하지 없는 지정 하지만.

R

캐싱입니다, 최적화, 임의 액세스 디스크에서 제하지 없는 지정 하지만.

T

파일을 임시 이름으로 지정합니다.가능 하면 않습니다 플러시는 디스크에.

D

파일을 임시 이름으로 지정합니다.마지막으로 파일포인터를 닫을 때 삭제 됩니다.

경우 t 또는 b 부여 됩니다 없습니다 mode, 변환 모드 기본 모드로변수를 통해 정의 된**_fmode**. 경우 t 또는 b 앞의인수를함수실패 한 반환 NULL.텍스트 및이진모드에 대 한 설명은 참조 하십시오. 텍스트 및 이진 모드 파일 I/O.

인수shflag상수 식share.h에 정의 된매니페스트상수를 1로 구성 되어 있습니다.

용어

정의

_SH_COMPAT

16 비트 응용 프로그램을 위한 호환 모드를 설정합니다.

_SH_DENYNO

읽기 및 쓰기 액세스를 허용.

_SH_DENYRD

파일에읽기 권한거부합니다.

_SH_DENYRW

읽기 및 파일에 대 한 쓰기 액세스를 거부합니다.

_SH_DENYWR

파일에 대 한 쓰기 액세스를 거부합니다.

일반 텍스트 루틴 매핑

Tchar.h 루틴

_UNICODE 및 _mbcs가 정의 되지 않았습니다.

_Mbcs가 정의

_Unicode가 정의

_tfsopen

_fsopen

_fsopen

_wfsopen

요구 사항

Function

필수헤더

선택적 헤더

_fsopen

<stdio.h>

<share.h>

매니페스트상수에 대 한 shflag매개 변수.

_wfsopen

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

<share.h>

매니페스트상수에 대 한 shflag매개 변수.

예제

// crt_fsopen.c

#include <stdio.h>
#include <stdlib.h>
#include <share.h>

int main( void )
{
   FILE *stream;

   // Open output file for writing. Using _fsopen allows us to
   // ensure that no one else writes to the file while we are
   // writing to it.
    //
   if( (stream = _fsopen( "outfile", "wt", _SH_DENYWR )) != NULL )
   {
      fprintf( stream, "No one else in the network can write "
                       "to this file until we are done.\n" );
      fclose( stream );
   }
   // Now others can write to the file while we read it.
   system( "type outfile" );
}
  

해당 .NET Framework 항목

참고 항목

참조

스트림 I/O

fclose, _fcloseall

_fdopen, _wfdopen

ferror

_fileno

통해, _wfopen

freopen, _wfreopen

_open, _wopen

_setmode

_sopen, _wsopen