웹 서버가있는 iPhone 응용 프로그램을 작성하고 있습니다. 웹 요청을 처리하기 위해 웹 요청을 받아서 다시 보내려는 데이터를 write()합니다.write()는 파일 이름이 잘못되었을 때 치명적인 오류를 발생시킵니다.
중간 크기의 파일 (3-6MB)을 다운로드하려고하면 제대로 작동하지만 다운로드가 중간에 취소되면 앱이 다운되고 오류가 표시되지 않습니다. 나는 파일 디스크립터가 쓰기를 통해 중간에 무너져서 충돌을 일으킨다 고 생각하고있다. 나는 이것이 충돌을 일으키는 원인이되는지 진짜로 모른다, 나는 다만 추측하고있다.
저는 웹 서버가 this 예를 벗어났습니다.
NSString *header = @"";
NSData *data = [NSData dataWithContentsOfFile:fullPath];
write (fd, [header UTF8String], [header length]);
write(fd, [data bytes], [data length]);
close(fd);
이 문제를 해결하는 방법을 아는 사람이 있습니까? 나는 데이터를 청크에 넣고 각 부분을 쓰려고 생각하고 있었지만 도움이 될 것이라고는 생각하지 않는다.
다운로드를 중지하는 데 어떤 코드가 있습니까? 디버거에서 앱을 실행하여 충돌을 잡으려고 시도 했습니까? – codewarrior
왜 그럴까요? 충돌 지점을 식별하는 데 도움이되는 도구가 있습니다. 적어도 백 트레이스를 가져야합니다. 디버거에서 앱을 실행하고 충돌이 발생한 곳을 확인합니다. – bbum