Configuration file

"rc file" redirects here. For Microsoft Windows resource scripts, see Resource (Windows).

In computing, configuration files, or config files configure the parameters and initial settings for some computer programs. They are used for user applications, server processes and operating system settings.

Some applications provide tools to create, modify, and verify the syntax of their configuration files; these sometimes have graphical interfaces. For other programs, system administrators may be expected to create and modify files by hand using a text editor; possible because many are human-editable plain text. For server processes and operating-system settings, there is often no standard tool, but operating systems may provide their own graphical interfaces such as YaST or debconf.

Some computer programs only read their configuration files at startup. Others periodically check the configuration files for changes. Users can instruct some programs to re-read the configuration files and apply the changes to the current process, or indeed to read arbitrary files as a configuration file. There are no definitive standards or strong conventions.

A configuration file for GNU GRUB being edited. Note the use of comments (the lines beginning with a '#'), both as documentation and as a way to disable settings.


Across Unix-like operating systems many different configuration-file formats exist, with each application or service potentially having a unique format, but there is a strong tradition of them being in human-editable plain text, and a simple key-value pair format is common. Filename extensions of .ini, .cnf, .conf, .cfg, .cf and similar are often used.

Almost all formats allow comments, in which case, individual settings can be disabled by prepending with the comment character. Often the default configuration files contain extensive internal documentation in the form of comments[1][2] and man files are also typically used to document the format and options available.

System-wide software often uses configuration files stored in /etc, while user applications often use a "dotfile" - a file or directory in the home directory prefixed with a period, which in Unix hides the file or directory from casual listing.

Some configuration files run a set of commands upon startup. A common convention is for such files to have 'rc' in their name,[3] typically using the name of the program then an "(.)rc" suffix e.g. ".xinitrc", ".vimrc", ".bashrc", "xsane.rc". See run commands for further details.

By contrast, IBM's AIX uses an Object Data Manager (ODM) database to store much of its system settings.


MS-DOS itself primarily relied on just one configuration file, CONFIG.SYS. This was a plain text file with simple key-value pairs (e.g. DEVICEHIGH=C:\DOS\ANSI.SYS) until MS-DOS 6, which introduced an INI-file style format. There was also a standard plain text batch file named AUTOEXEC.BAT that ran a series of commands on boot. Both these files were retained up to Windows 98SE, which still ran on top of MS-DOS.

An example CONFIG.SYS for MS-DOS 5:


DOS applications used a wide variety of individual configuration files, most of them binary, proprietary and undocumented - and there were no common conventions or formats.

Microsoft Windows

The REGEDIT application being used to edit Windows Registry data

The early Microsoft Windows family of operating systems heavily utilized plain text INI files (from "initialization"). These served as the primary mechanism to configure the operating system and application features.[4] The APIs to read and write from these still exist in Windows, but after 1993, Microsoft began to steer developers away from using INI files and toward storing settings in the Windows Registry, a hierarchical database to store configuration settings which was introduced that year with Windows NT.

Mac OS X

Main article: Property list

The property list file is the standard configuration file format in Mac OS X (as well as in iOS, NeXTSTEP, GNUstep and Cocoa applications). Property list files use the filename extension .plist, and thus are often referred to as p-list files.


IBM's OS/2 uses a binary format, also with a .INI suffix, but this differs from the Windows versions. It contains a list of lists of untyped key-value pairs.[5] Two files control system-wide settings: OS2.INI and OS2SYS.INI. Application developers can choose whether to use them or create a specific file for their applications.

Serialization formats

A number of general purpose serialization formats exist that can represent complex data structures in an easily stored format, and these are often used as a basis for configuration files, particularly in open source and platform neutral software applications and libraries. The specifications describing these formats are routinely made available to the public, thus increasing the availability of parsers and emitters across programming languages.

Examples include: XML, YAML and JSON.

See also


  3. "rc file". Retrieved 2012-02-29.
  4. Microsoft: Windows NT Workstation Resource Kit
  5. The OS/2 INI Files by James J. Weinkam.

External links

This article is issued from Wikipedia - version of the 11/8/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.