poco libary FTPclientsession을 사용하여 ftp로 이진 파일을 다운로드하는 C++ 응용 프로그램을 만들었습니다. 내가 FTP에 서버가 1,048,576 바이트로 구성 1메가바이트의 파일을 (다운로드하려고하면istream에서 ostream으로 C++로 바이너리 파일 복사가 항상 올바르지 않습니다.
char c = 0;
istream is;
ostream os;
std::streamsize iter = 0;
is.get(c);
while (istr && ostr)
{
++iter;
os.put(c);
is.get(c);
}
return iter;
: 다음 코드를 사용하여 바이트에 의해 내가 ostream에 바이트에 istream로부터 파일을 복사 다운로드 진행 상황을 계산하기 위해 stat 명령으로 확인) 대부분 iter는이 숫자에 도달하지 않지만 1048573에서 1048575까지 1에서 3 바이트만큼 작은 값을 갖습니다.
매우 작은 경우 정확한 크기를 측정합니다. 또한 is.fail()을 검사하여 측정 값이 올바르지 않은 경우 failbit가 설정되었음을 알았습니다.
이 문제는 바이너리 파일, 서버와의 연결 불량 또는 코드 문제로 인한 것입니까?