Microsoft KB Archive/246934

= BUG: istream::readsome Does Not Read Correctly on File Stream =

Article ID: 246934

Article Last Modified on 7/30/2001



This article was previously published under Q246934



SYMPTOMS
The istream::readsome function does not read correct data from a file.



CAUSE
The basic_istream::readsome function has some limitations when used on certain streams. Moreover, the MSDN documentation for basic_istream::readsome states that internally basic_istream::readsome calls the read function. However, in the basic_istream::readsome implementation, the read function is never called.



RESOLUTION
Give preference to basic_istream::read.



STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.



MORE INFORMATION
Here is a code sample that illustrates the problem and provides a workaround:


 * 1) include
 * 2) include

using namespace std;

int main {   ifstream file("c:\\config.sys",ios::in|ios::binary);

static char buffer[10]; buffer[10] = 0;

if ( !file ) cout << "unable to open file" << endl; else {       file.readsome(buffer,10); // It does not work properly. //file.read( buffer, 10 ); // Uncomment this line for work around. cout << buffer << endl;

cout << endl << "File contents are:" << endl; file.seekg( 0 );   // Rewind file. while( file.good ) {           file.getline( buffer, 10 ); cout << buffer << endl; }   }    return 0; }

Additional query words: stl

Keywords: kbbug KB246934

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.