2011-08-17 3 views
0

네트워크 연결이 "실패 할 때"네트워크 공유를 통해 쓰고있는 파일에는 어떤 일이 발생할 수 있습니까? 나는 여러 가지 일이 일어날 수 있다고 상상한다.WriteFile 실패 모드

내가 묻는 이유는 필자가 전에 본 적이없는 방식으로 파일을 손상시킨 것처럼 보였기 때문입니다. 실제로 필자는 이전에 손상된 파일을 만드는 프로그램에 대한 보고서를받지 못했고, 파일이 손상 되었다면 확신 할 수있었습니다. 실제로 손상된 파일을 생성 한 코드는 실제로 Microsoft 코드입니다. 파일은 save 함수가 MSXML4.0 COM 구성 요소에서 IXMLDOMDocument2 인터페이스에 호출 될 때 만들어집니다. 함수가 잘못된 XML 문서를 만들었습니다. 33789 바이트 파일의 마지막 5452 바이트는 NULL (0x00)으로 채워졌습니다. 나는 무슨 일이 일어 났는지 이해하려고 노력하고있다.

+1

파일을 쓰는 동안 네트워크 연결에 실패했습니다. 충분하지 않아? –

+0

@ 한스, 무슨 말씀 이시죠? 네트워크 연결이 실패 할 때 쓰기 작업의 동작이 정의되지 않았다는 말입니까? 일반적으로 네트워킹 스택 및/또는 네트워크 서비스에는 일종의 내결함성이 있습니다. – Mike

+0

당신 것 같지 않습니다. 이것을 serverfault.com에 가져 가서주의 깊게 설명하는 것을 잊지 마십시오. –

답변

2

짧은 대답은 파일이 손상되었을 수 있다는 것입니다 (이미 발견했듯이).

거기에서 거의 유일한 흥미로운 질문은 어떻게 그 일이 다시 일어나지 않도록 방지하는지입니다. 일반적인 방법은 임시 파일에 데이터를 쓰고 쓰고 난 후 올바른 이름으로 바꾸는 것입니다. 이 중간에 네트워크 연결이 끊어지면 올바른 파일 이름을 알 수 없습니다. 복구하려면 임시 파일을 삭제하고 처음부터 작업을 다시 시작하십시오.

+0

답변 해 주셔서 감사합니다. 나는 또한 다음 페이지가 도움이된다는 것을 알았다. http://blogs.msdn.com/b/adioltean/archive/2005/12/28/507866.aspx – Mike