_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를 검사 하 고, 가능 하면 제거 합니다.이 사용 하 여 수행 됩니다 fseek 및 ftell 통해 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 항목
System::IO::FileStream::FileStream