मैं अनुभव किया है समस्याओं। जब मैं इस उदाहरण कोड को चलाता हूं तो यह segfaults। क्यूं कर?बढ़ावा :: asio का उपयोग कर संहिता :: streambuf segfault asio :: streambuf का उपयोग कर और आशा करता हूं किसी ने मुझे बता सकते हैं कि मैं कक्षा गलत तरीके से उपयोग कर रहा हूँ कर सकते हैं का कारण बनता है
बातें भ्रामक बनाने के लिए, इस कोड को विंडोज (विजुअल स्टूडियो 2008) पर काम करता है, लेकिन लिनक्स पर काम नहीं करता है (जीसीसी 4.4.1 के साथ)।
#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;
}
संभव बग ... – niXman
यह सिर्फ 'asio :: streambuf' है, या' करता std :: streambuf' प्रदर्शनी समान व्यवहार? –
मुझे भी कोर डंप किया गया। कोड संकलित करने के लिए कृपया '#' शामिल करें। – vissi