PRB: "Access to an Unnamed File Was Denied" Error (181880)



The information in this article applies to:

  • Microsoft Visual C++ 4.0
  • Microsoft Visual C++, 32-bit Enterprise Edition 5.0
  • Microsoft Visual C++, 32-bit Enterprise Edition 6.0
  • Microsoft Visual C++, 32-bit Professional Edition 5.0
  • Microsoft Visual C++, 32-bit Professional Edition 6.0
  • Microsoft Visual C++, 32-bit Learning Edition 6.0

This article was previously published under Q181880

SYMPTOMS

You get the following error when calling CFile::Read():
Access to an unnamed file was denied.
If run under the Microsoft Visual C++ debugger, you will see the following error:
CFile exception: accessDenied, File Unknown, OS error information = 5

CAUSE

You are actually opening the file without read access. The following intuitively correct code causes the error:
CFile cf;
   int data;
 
   cf.Open("myfile.dat", CFile::modeRead | CFile::modeWrite);
 
   cf.Write(&data, sizeof(int));
 
   cf.Read(&data, sizeof(int));
				

RESOLUTION

Specify CFile::modeReadWrite instead of the logical OR of CFile::modeRead and CFile::modeWrite.

STATUS

This behavior is by design.

REFERENCES

For more information about CFile, or other MFC classes, consult the Microsoft Visual C++ online help.

Modification Type:MajorLast Reviewed:12/8/2003
Keywords:kbCodeGen kberrmsg kbprb KB181880