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 (899149)
The information in this article applies to:
- Microsoft Visual C++ 2005 Express Edition
- Microsoft Visual C++ .NET (2003)
- Microsoft Visual C++ .NET (2002)
SYMPTOMSConsider 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).CAUSEThe problem occurs because of a limitation of the operating
system.WORKAROUNDTo 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.
REFERENCESFor more information about the fopen and fwrite functions, visit the following Microsoft Developer Network (MSDN)
Web sites:
Modification Type: | Major | Last Reviewed: | 1/12/2006 |
---|
Keywords: | kbopenfile kbcode kbtshoot kbprb KB899149 kbAudDeveloper |
---|
|