You cannot call the fwrite function to write to a buffer that is larger than 64 MB in Visual C++ 2005, in Visual C++ .NET 2003, or in Visual C++ .NET 2002

SYMPTOMS
Consider the following scenario. In Microsoft Visual C++ 2005, in Microsoft Visual C++ .NET 2003, or in Microsoft Visual C++ .NET 2002, you use the fopen function to open a file that is on a network drive. In the function call, you use the wb (write and binary) access type as the mode parameter. If you then call the fwrite function to write to a buffer that is larger than 67,076,095 bytes, the function call fails.

Note 67,076,095 bytes are approximately 64 megabytes (MB).
CAUSE
The problem occurs because of a limitation of the operating system.
WORKAROUND
To work around this problem, use one of the following methods:
  • When you open a file, use the w+b (reading and writing) access type as the mode parameter.
  • Use a smaller buffer. Then, call the fwrite function in a loop until you write the number of bytes that you want to the file.
REFERENCES
For more information about the fopen and fwrite functions, visit the following Microsoft Developer Network (MSDN) Web sites:
Propiedades

Id. de artículo: 899149 - Última revisión: 11/16/2007 07:08:58 - Revisión: 2.2

Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual C++ .NET 2002 Standard Edition

  • kbopenfile kbcode kbtshoot kbprb KB899149
Comentarios