Czesc.
Pisze serwer TCP w asio i mam problem z nastepujacym fragmentem:
bool tcp_connection::read_file(std::ofstream& filestream, long expected_size)
{
std::size_t recv_bytes = 0;
recv_bytes = boost::asio::read(socket_, boost::asio::buffer(filestream.rdbuf(), expected_size));
return recv_bytes==expected_size;
}
Chce osiagnac efekt dzieki ktoremu funkcja read bedzie czytac bezposrednio do bufora pliku.
filestream to otwarty buffer pliku.
Blad wystepuje po kasowaniu zmiennej filestream z nadrzednej funckji:
std::ofstream outfile (filename.c_str(), ios_base::out|ios_base::trunc|ios_base::binary);
if(outfile.fail())
{
return;
}
owner_->read_file(outfile, iSize);
outfile.close();
Wyglada to tak jakby buffer byl juz zmowlniony wczesniej? ale jak to mozliwe przeciez boost::buffer nie powinien zwalniac buffera? A jesli zwalnia jak temu zapobiec...
Pozdrawiam.