2012-12-14 2 views
0

프로그램이 Windows 시스템에 파일을 만들어 진행 상황을 기록합니다. 프로그램이 끝나면 파일이 닫히고 시스템에 남아 있습니다. 네트워크 액세스 권한이있는 사용자는 최근에 기록 된 항목을 보려면 파일을 원격으로 열려고합니다.fopen_s가 CreateFile로 리팩터링하기가 쉽습니다.

fopen_s을 사용하여 파일을 열었습니다. 설명서에 공유 모드에 대한 언급이 없습니다. Ansi-C90 사용은 필수 사항입니다.

사용 된 호출은 다음과 같습니다

e += fopen_s(&(logger->logData.fileHandle), fp.Path, "a"); 

나를 위해 옵션이 CreateFile이 있습니까? Ansi-C90이 아니라고 읽었습니다.
fopen_s은 다른 코드를 위반하지 않고 CreateFile에 리팩터링하기 쉽습니다.
unittest를 작성해야하는 리펙터 문제는 어떤 종류입니까?
다른 방법으로 공유 모드에서 파일을 열 수 있습니까?

+2

는 "파일이 fopen_s 열 및 _wfopen_s가 공유 할 수 없습니다 (주석 요하네스의 요청에 따라 답으로 전환). 당신이 파일을 공유 할 수있는 것이이 필요한 경우 (예를 들어, 적절한 공유 모드 상수 _wfsopen, _fsopen 사용 , 읽기/쓰기 공유를위한 _SH_DENYNO). " – loreb

+0

매력처럼 작동했습니다. – Johannes

+0

@loreb 답변을 수락 할 수 있도록 답변에 댓글을 남길 수 있습니까? 고마워 :) – Johannes

답변

1

"공유 할 파일이 필요하면 _fsopen, _wfsopen을 적절한 공유 모드 상수 (예 : 읽기/쓰기 공유의 경우 _SH_DENYNO)와 함께 사용하십시오."

관련 문제