A configuration file — sometimes referred to as a config file — is an electronic file used to store, modify or control the settings of an operating system or program. These files are prevalent in most major operating systems and are usually set up to be easy to edit. They are typically formatted as simple text files or extensible markup language (XML) files. Config files can be utilized to control the settings of the operating environment within certain programs that are unusually complex in how they function. They can also be used to control the preferences for numerous computers or programs across networks.
The type of data provided in config files varies widely. There is no standard regarding the contents or layout of a configuration file, because it can differ depending on the applications supported. Certain file types — most notably *.xml — or platforms can mandate the file structure. A config file can utilize any file extension but, in addition to *.xml, some other common extensions reserved for identification of a configuration file are *.ini, *.txt, and *.config.
Configuration files find common use in a wide range of software and programs. They are a fairly standard tool used by software developers to modify the programs they create while simultaneously avoiding the need to recompile the source code for the software. Some games employ the files to determine paths to game maps or character information. Other applications, such as those that create content, can take advantage of config files that contain variables such as the amount of system memory to reserve, the names and number of layers in a file, or user preferences such as hotkeys for certain program functions.
A configuration file is sometimes employed to specify hardware, system or server settings. They are frequently used to specify properties associated with web servers. One of the most common uses of configuration files is to control the boot-up of a computer, including identification of the programs that start up with the operating system and pointers to the drivers necessary to control the hardware attached to the computer.
Many programs are available that can modify and create configuration files, in part because the files are usually plain text. Most operating systems come with text editors that can be utilized for the job, although low-cost third-party text editors are available to make the task more efficient. In the case of XML files, there are a large number of programs available for performing the edits. Occasionally, end users end up editing configuration files merely by changing settings in a dialog.