Documentation Archive Developer
Search

ADC Home > Reference Library > Technical Notes > Legacy Documents > Carbon >

Legacy Documentclose button

Important: This document is part of the Legacy section of the ADC Reference Library. This information should not be used for new development.

Current information on this Reference Library topic can be found here:

OpenRFPerm: What your mother never told you

CONTENTS

This note corrects an error in the description of the Resource Manager routine OpenRFPerm found in Inside Macintosh Volume IV

[Apr 01 1988]






Introduction

On page IV-17 in the Resource Manager chapter of Inside Macintosh Volume IV it states,

"OpenRFPerm, like OpenResFile, will not open the specified file twice; it simply returns the reference number already assigned to the file. In other words, OpenRFPerm cannot be used to open a second access path to a resource file..."

This statement is incorrect. OpenRFPerm behaves exactly as described if an application attempts to open a second access path, with write access, to a resource file without MultiFinder. With MultiFinder, however, if the second attempt comes from a different application than the one that originally opened the file OpenRFPerm will not return the reference number already assigned to the file, instead it will return -1 and ResError will be set to opWrErr (-49). In fact in similar circumstances with MultiFinder, OpenResFile behaves the same way, returning -1 and setting ResError to -49.

Note, however, that with or without MultiFinder, OpenRFPerm will create multiple, unique, read-only access paths to a resource file. Using this feature is not safe and should be avoided since if a resource file is opened twice, once with read-write permission and once with read-only permission then two copies of the resource map will exist in memory. If one of the resources in the file is changed and written to disk then the two maps will become inconsistent and the second access path will see what it thinks is a trashed resource file.

If you must use this technique for read-only access, only call OpenRFPerm when your application is ready to read information from the file and close the file immediately afterwards. Otherwise you risk having the resource file change out from under your application.

Back to top

References

The Resource Manager

Back to top

Downloadables

Acrobat gif

Acrobat version of this Note (48K).

Download