Creator code

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
File:Mac OS window with four different MP3 files.png
The creator code is responsible for linking the file and the program that will launch when the file is double-clicked. This Mac OS window show four files of the same type code (MP3), but with four different creator codes: Audn (Audion), hook (iTunes), SCPL (SoundApp) and NSWa (Winamp).

A creator code is a mechanism introduced in pre-OS X versions of the Macintosh operating system to link a data file to the application program which created it. The similar type code held the file type, like "TEXT". Together, the type and creator indicated what application should be used to open a file, similar to (but richer than) the file extensions in other operating systems.

Creator codes are four-byte OSTypes. They allow applications to launch and open a file whenever any of their associated files is double-clicked. Creator codes could be any four-byte value, but were usually chosen so that their ASCII representation formed a word or acronym. For example, the creator code of the HyperCard application and its associated "stacks" is represented in ASCII as WILD. Occasionally they represented inside jokes. For instance, the Marathon computer game had a creator code of 26.2 (the approximate length, in miles, of a marathon) and Marathon 2: Durandal had a creator code of 52.4.

The binding are stored inside the resource fork of the application as BNDL and fref resources. These resources maintained the creator code as well as the association with each type code and icon. The OS collected this data from the files when they were copied between mediums, thereby building up the list of associations and icons as software was installed onto the machine. Periodically this "desktop database" would become corrupted, and had to be fixed by "rebuilding the desktop database."[1]

The key difference between extensions and Apple's system is that file type and file ownership bindings are kept distinct. This allows files to be written of the same type - TEXT say - by different applications. Although any application can open anyone else's TEXT file, by default, opening the file will open the original application that created it. With the extensions approach, this distinction is lost - all files with a .txt extension will be mapped to a single text editing application of the user's choosing. A more obvious advantage of this approach is allowing for double click launching of specialized editors for more complex but common file types, like .csv or .html. This can also represent a disadvantage as in the illustration above, where double clicking the four mp3 files would launch and play the files in four different music applications instead of queuing them in the user's preferred player application.

OS X retains creator codes, but supports extensions as well (However, beginning with OS X 10.6 Snow Leopard, creator codes are ignored by the Operating System.). Creator codes have been internally superseded by Apple's Uniform Type Identifier scheme, which manages application and file type identification as well as type codes, creator codes and file extensions.

To avoid conflicts, Apple maintained a database of creator codes in use. Developers could fill out an online form to register their codes.[2] Apple reserves codes containing all lower-case ASCII characters for its own use.

Apple's developer documentation states that applications should continue to set type codes and optionally set creator codes. If either already exists, applications should preserve them.[3] Furthermore, creator codes are used in document binding prior to the file extension alone.[4]

Creator codes are not readily accessible for users to manipulate, although they can be viewed and changed with certain software, most notably the OS X command line tools GetFileInfo and SetFile which are installed as part of the developer tools into /Developer/Tools.

See also

References

  1. "Mac OS: Rebuilding Desktop File and icon recovery", Apple
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. [1] Archived November 14, 2014 at the Wayback Machine

External links