|
Boost Users : |
Subject: [Boost-users] [asio] Run-time error with asio::streambuf
From: Dylan Klomparens (dylan.klomparens_at_[hidden])
Date: 2011-02-11 12:09:24
I've experienced problems using asio::streambuf and am hoping someone can
tell me if I'm using the class incorrectly. When I run this example code it
segfaults. Why?
To make things more confusing, this code works on Windows (Visual Studio
2008), but does not work on Linux (with gcc 4.4.1).
-- Dylan
#include <boost/asio.hpp>
using namespace std;
int main()
{
boost::asio::streambuf Stream;
// Put 4 bytes into the streambuf...
int SetValue = 0xaabbccdd;
Stream.sputn(reinterpret_cast<const char*>(&SetValue),
sizeof(SetValue));
// Consume 3 of the bytes...
Stream.consume(3);
cout << Stream.size() << endl; // should output 1
// Get the last byte...
char GetValue;
// -------------------------- The next line segfaults the program
--------------------------
Stream.sgetn(reinterpret_cast<char*>(&GetValue), sizeof(GetValue));
cout << Stream.size() << endl; // should output 0
return 0;
}
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net