INIファイル

INI
ファイル名拡張子
.ini
インターネットメディアの種類
text/plain、application/textedit、zz-application/zz-winassoc-ini
フォーマットの種類初期化/構成ファイル

INIファイルは、コンピュータソフトウェア設定ファイルであり、セクションに整理されたキーと値のペアからなる構造と構文を持つプレーンテキストで構成されています。 [ 1 ]これらの設定ファイルの名前は、このソフトウェア設定方法を普及させたMS-DOSオペレーティングシステムで使用されていたファイル名拡張子INI ( initializationの略)に由来しています。この形式は多くの設定のコンテキストで非公式な標準となっていますが、他のオペレーティングシステム上の多くのアプリケーションでは、 confcfgなど、異なるファイル名拡張子が使用されています。[ 2 ]

歴史

Windowsにおけるソフトウェア設定の主な仕組みは、元々はテキストファイル形式で、各行に1つのキーと値のペアが記述され、セクションに分けられたテキスト行で構成されていました。この形式は、デバイスドライバ、フォント、スタートアップランチャーなどのオペレーティングシステムコンポーネントに使用されていました。また、INIファイルは、アプリケーションが個々の設定を保存するためにも一般的に使用されていました。[ 3 ]

この形式は、 Windows 3.1xまでの16ビットMicrosoft Windowsプラットフォームで維持されていました。Windows 95以降、 Microsoft はWindows レジストリの使用を推奨し、開発者が設定に INI ファイルを使用しないように誘導し始めました。それ以降のすべてのバージョンの Windows では、システム設定に Windows レジストリが使用されていますが、.NET Framework 上に構築されたアプリケーションでは、特別なXML .configファイルが使用されます。初期化ファイルの機能は Windows でも引き続き利用可能であり、開発者は引き続き使用できます。

Windowsソフトウェアだけでなく、プラットフォームに依存しないソフトウェアも設定にこのファイル形式を使用する場合があります。一部のUnix系設定ファイルも同様の形式を使用しています。INIファイルは人間が読める形式で解析も簡単なため、それほど複雑な設定を必要としない設定ファイルには適しています。

有病率

以下は、INI ファイルが存在する場所の一覧ですが、すべてを網羅したものではありません。

  • Desktop.iniWindowsでは、ディレクトリのプロパティを設定するために、例えばフォルダのアイコンを指定するために、ファイルが今でも使用されています。[ 4 ] [ 5 ]
  • PHPphp.iniファイルはINI形式を採用しています。[ 6 ] [ 7 ]
  • Git.git/configファイルはINI形式で書かれています。[ 8 ]
  • freedesktop.orgの*.desktopエントリはINI形式で書かれています。[ 9 ]
  • systemd*.serviceユニット設定ファイルはINIに書き込まれます。[ 10 ]
  • Netatalkafp.confファイルはINIスタイルの設定言語で書かれています。[ 11 ]
  • Pacmanpacman.confファイルはINIで書かれています。[ 12 ]
  • Forgejoapp.ini設定ファイルはINI形式で書かれています。[ 13 ]
  • EditorConfig.editorconfig設定ファイルはINI形式で書かれています。[ 14 ]

以下のサンプルファイルには、ソフトウェアの所有者に関するセクションと給与データベース接続に関するセクションの2つがあります。コメントには、ファイルを最後に変更したユーザーと変更理由が記録されます。

; 最終更新日: 2001 年 4 月 1 日、John Doe [所有者]名前= John Doe 、組織= Acme Widgets Inc.[データベース] ; ネットワーク名解決が機能していない場合は IP アドレスを使用します。サーバー= 192.0.2.62ポート= 143ファイル= "payroll.dat"

形式

広義のINIは、人間による設定が可能でありながら、アドホックな実装に適した非公式なフォーマットです。そのため、INI方言と呼ばれる様々な仕様(パーサー実装のみが記述されている場合もあります)が存在します。

INIの解釈は、空白の保持、フィールドタイプ情報、大文字と小文字の区別、コメント区切り文字の推奨設定など、個人の好みやコンピューティング環境のニーズに大きく依存します。そのため、INIは普及しやすい傾向があります。とはいえ、INI風の実装は通常、共通の設計特性を備えています。つまり、各行にキーと値のペアが等号で区切られ、角括弧で囲まれたセクションに分かれたテキストファイルです。

最も複雑な解釈では、INI 形式は任意のS 式を表現できるため、 XMLJSONなどの標準化された形式と同等になります。ただし、構文は固定されておらず、一部の人にとってはより快適に感じるかもしれません。

INIファイル形式は厳密に定義されていないため、多くのパーサーは共通コアを構成する機能を超えた機能をサポートしています。実装されているサポートは非​​常に不安定です。可能な限り多くの方言をサポートできるパーサーを作成する試みがなされてきました。[ 15 ]

キーと値のペア

INI 内のデータは、キーまたはプロパティと呼ばれるキーと値のペアで保持されます。したがって、キーは、キーと値のペア全体またはそのキーのみを参照できます。値はプロパティ名とも呼ばれます。テキスト表現では、キーと値のペアは行または複数行で表され、値の開始は区切り文字で示されます。区切り文字は、ほとんどの場合等号( =、ASCII 0x3D) ですが、コロン ( :、ASCII 0x3A) または空白文字 (GNU の世界では時々使用されます[ 15 ] ) の場合もあります。キーのキーは区切り文字の左側に表示され、空でない場合が多く、区切り文字を含んではいけません。一部のフレーバーでは、値にエスケープ シーケンスを使用できます。

Windows実装では、等号とセミコロンは予約文字であり、キーには使用できません。キーの前後の空白はパーサーによって削除されます。値には任意の文字を含めることができます(Windowsスタイルでは、区切り文字の前後に空白は含まれません:例:IconFile=Folder.ico)。

キーと値のペアは、テキストでは次のようになります。

キー=キー=v名前=sem = ; semver = v5822.433.2

セクション

キーと値のペアは、セクションにグループ化できます。一部の INI 方言では、すべてのキーと値のペアをセクションに含める必要があり、一部の方言では、いわゆるグローバルプロパティが許可されます。[ 16 ]キーと値のペアがグループ化されている場合、セクション名は、角括弧( [、ASCII 0x5B、および]、ASCII 0x5D) で囲まれた行に単独で表示され、別のセクションが宣言されるまで、後続の行のすべてのキーと値のペアに適用されます。明示的な「セクションの終了」区切り文字はありません (たとえば、XML の など</tag>)。したがって、セクションは構文的に任意にネストすることはできません。必要な場合は、階層をフラット化し、セクション名の中にカスタム区切り文字 (多くの場合 、ASCII 0x2E) を連結することでネストを実装できます.。1 レベルのネストがサポートされていることが多く、サブセクションと呼ばれます。

ネストされたセクションを使用する INI ドキュメントの例:

[プロジェクト]名前=果樹園レンタルサービス(アプリ付き)対象地域= 「ベイエリア」; TODO: 空きポジションを広告する法務チーム= (空きあり)[果物「リンゴ」]商標問題=予見可能な=既知[fruit.Date]=斬新商標問題= 「本当にあり得ない」[果物「ラズベリー」]予想される問題= 「物流(壊れやすい果物)」商標の問題= \ 可能[fruit.raspberry.proponents.fred] date = 2021-11-23, 08:54 +0900 comment = "私は赤い果物が好きです。" [fruit "Date/proponents/alfred"] comment :ええ、  \ \ \ 私はデーツを買います。# folding: "\\\\\nn" は "\\n" と解釈されますか、それとも "\n" と解釈されますか?# それとも "\\\\" は折り返しを妨げますか?editor =私の名前には \ \ 改行が含まれている可能性があります。

階層(セクションのネスト)

一部のパーサーでは、ドットをパス区切り文字として使用してセクションのネストを許可します。

[セクション]ドメイン= example.com[セクション.サブセクション] foo = bar

場合によっては相対的なネストもサポートされており、先頭のドットは前のセクションへのネストを表します。[ 15 ]

[セクション]ドメイン= example.com[.サブセクション] foo = bar

歴史的には、ドットの代わりにネストを表現する方法も存在していました(たとえば、IBMのMicrosoft Windows ドライバファイルdevlist.iniでは、バックスラッシュが;の形式でネスト区切り文字として使用されていました。[A\B\C]また、Microsoft Visual Studio のファイルでは、とAEMANAGR.INIの形式で全く異なる構文が使用されていました)。一部のパーサーはネストのサポートをまったく提供しておらず、階層を無視していましたが、 が一意の識別子を構成するという事実を利用することで、ネストを部分的にエミュレートすることはできました。 [A]B,C,P = V[A.B.C]

大文字と小文字の区別

Windowsのセクション名とプロパティ名は大文字と小文字を区別しません[ 17 ]ほとんどのUnixスタイルのINI解釈では大文字と小文字の区別は完全に禁止されていますが、セクション名[ 18 ]やキー[ 19 ]の大文字と小文字の区別は許可される場合があります。

コメント

連続する末尾の空白文字の後にセミコロン( ;、ASCII 0x3E)が続く行は、コメントを示します。また、一部の INI 方言では、 Unixシェルのコメントと同様に、コメントを示す番号記号( #、ASCII 0x23)を使用できます。すべてではありませんが一部の INI 方言では、キーと値のペアの行またはセクション行にコメント (インライン コメントと呼ばれる) を使用できます。その場合、値またはセクションの閉じ括弧とコメントを区切る空白文字が必要なものもあります。それでも、一部の方言ではキー名に番号記号が含まれることがあり、その場合は無視されます。コメント行は、パーサーによって無視されるように設計されています。

#! /bin/convert-ini-to-perl | perl | ssh wikipedia.org upload --sanitise=no ; INI方言の知識がないと曖昧です: ; 値は「live」ですか、それとも「live # dangerously」ですか? = live # dangerouslyにしたいです#var = avar = a ; これはインラインコメントですfoo = bar # これは別のインラインコメントです

WinAPIGetPrivateProfileStringの方言では、コメントは行ごとに記述する必要があります。

セクションとプロパティの順序

セクション内のプロパティの順序とファイル内のセクションの順序は無関係です。

重複した名前

ほとんどの実装では、セクション内に特定の名前のプロパティを1つだけ持つことができます。同じプロパティ名が2度目に出現した場合、処理が中断されるか、無視される(値が破棄される)、最初の出現を上書きする(最初の値が破棄される)可能性があります。一部のプログラムでは、複数の値を持つプロパティを実装するために、重複したプロパティ名が使用されています。

同じ名前を持つ複数のセクション宣言の解釈も異なります。実装によっては、重複したセクションのプロパティを、あたかも連続して出現したかのように単純にマージするものもあります。また、処理を中止したり、INIファイルの一部を無視したりするものもあります。

引用符で囲まれた値

一部の実装では、値を引用符で囲むことが可能です。通常は二重引用符アポストロフィを使用します。これにより、空白文字を明示的に宣言したり、特殊文字(イコール、セミコロンなど)を引用符で囲んだりすることが可能になります。Windows標準の関数GetPrivateProfileStringはこれをサポートしており、値を囲む引用符を削除します。

行の継続

C言語の文法をエミュレートして、一部の方言で\は行末の文字としてバックスラッシュ(ASCII 0x5C)を使用することで改行が可能です。 [ 20 ]このような行継続では、バックスラッシュの直後にEOL(行末)が続くと、バックスラッシュと改行が削除され、文書の行が論理行に変換されます。

エスケープ文字

いくつかの方言では、文字エスケープのさまざまなサポートが提供されており、通常はバックスラッシュ文字(\、ASCII 0x5C)をメタ文字として使用し、Cの構文をエミュレートします。[ 21 ]

いくつかの仕様では一般的なエスケープシーケンスのメタ文字を明示的にミュートしているため、エスケープシーケンスを盲目的に解釈するのは賢明ではありません。[ 22 ] [ 23 ]

一般的なエスケープシーケンス
順序 意味
\\\ (エスケープ文字をエスケープする 単一のバックスラッシュ)
\'アポストロフィ
\"二重引用符
\0ヌル文字
\aベル/アラート/可聴
\bバックスペース、一部のアプリケーションでは ベル文字
\tタブ文字
\rキャリッジリターン
\n改行
\;セミコロン
\#数字記号
\=等号
\:結腸
\xhhhhコードポイント0xhhhh のUnicode文字。UTF-8 またはローカル エンコーディングでエンコードされています。

INIファイルへのアクセス

Windowsでは、Profile APIは、従来のWindowsファイルから設定を読み書きするためのプログラミングインターフェースです.ini。例えば、GetPrivateProfileString関数は、初期化ファイル内の指定されたセクションから文字列を取得します。(「プライベート」プロファイルは、 WIN.INIGetProfileStringから取得する とは対照的です。)

次のサンプルCプログラムは、上記のサンプル INI ファイル (構成ファイルの名前はdbsettings.ini) からプロパティ値を読み取る方法を示しています。

#include <windows.h>int main ( int argc , TCHAR * argv []){TCHAR dbserver [ 1000 ];int dbport ;GetPrivateProfileString ( TEXT ( "データベース" ), TEXT ( "サーバー" ), TEXT ( "127.0.0.1" ), dbserver , sizeof ( dbserver ) / sizeof ( dbserver [ 0 ] ), TEXT ( ". \\ dbsettings.ini" ));dbport = GetPrivateProfileInt ( TEXT ( "データベース" ), TEXT ( "ポート" ), 143 , TEXT ( ". \\ dbsettings.ini" ));// 注意:WritePrivateProfileInt() は存在せず、WritePrivateProfileString() のみ存在します0を返します}

関数の3番目のパラメータGetPrivateProfileStringはデフォルト値で、上記の2つの関数呼び出しではそれぞれ と です"127.0.0.1"143このパラメータに指定された引数が の場合NULL、デフォルト値は空文字列 になります""

Unixには、INIファイルにアクセスするための様々な設定ライブラリが存在します。これらはフレームワークやツールキットに既に含まれている場合が多くあります。Unix用のINIパーサーの例としては、GLibiniparserlibconfiniなどがあります。

INIパーサーの比較

名前 セクションのサポート セクションネストのサポート 障害者の入国許可[ 24 ]複数行のサポート[ 25 ]値の型 読み取り/書き込みサポート プラットフォームライセンスプログラミング言語最新リリースバージョン
Python ConfigParser [ 26 ] [ 27 ]はい はい いいえ 非標準[ 28 ]ブール値数値文字列読む + 書く *BSDLinuxmacOSWindowsPSFLC(実装)、Python(使用法) 3.9.7 [ 29 ]
GLib [ 30 ]はい はい いいえ いいえ ブール値数値文字列配列読む + 書く *BSDLinuxmacOSWindowsLGPLC2.66.7 (2021年2月11日) [±] [ 31 ] ( 2021-02-11 )

[ 32 ]

iniファイル[ 33 ]はい いいえ いいえ いいえ ブール値数値文字列読む + 書く *BSDLinuxmacOSWindowsアパッチ行く1.2.0 [ 34 ]
イニヒ[ 35 ]はい いいえ いいえ 非標準[ 36 ]ブール値数値文字列読む *BSDLinuxmacOSWindowsBSDC60 [ 37 ]
iniparser [ 38 ]はい いいえ いいえ はい ブール値数値文字列読む + 書く *BSDLinuxmacOSWindowsマサチューセッツ工科大学C4.2.4 [ 39 ]
Java (経由java.util.Properties) [ 40 ]いいえ いいえ いいえ はい 読む + 書く プラットフォームに依存しない デュアルライセンス:クラスパス例外付きGPLバージョン2 [ 41 ]プロプライエタリライセンス[ 42 ]C(実装)、Java(使用法)

25 LTS (2025年9月16日[ 43 ] ) [±] 21.0.5 LTS (2024年10月15日[ 44 ] ) [±] 17.0.13 LTS (2024年10月15日[ 45 ] ) [±] 11.0.25 LTS (2024年10月15日[ 46 ] ) [±] 8u431 LTS (2024年10月15日[ 47 ] ) [±] (2025年9月16日 ( 2024-10-15 ) ( 2024-10-15 ) ( 2024-10-15 ) ( 2024-10-15 )

libconfini [ 48 ]はい はい はい はい ブール値数値文字列配列読む *BSDLinuxmacOSWindowsGPLC1.16.2 [ 49 ]
PHP(経由parse_ini_file()[ 50 ]はい はい はい いいえ ブール値数値文字列Null読む LinuxmacOSWindowsPHPライセンスv3.01 [ 51 ]C(実装)、PHP(使用方法) 8.5.2 [ 52 ] ウィキデータで編集する(2026年1月15日)  (2026年1月15日
ピイニ[ 53 ]はい はい(最大2セクション) はい はい ブール値数値文字列配列読む + 書く プラットフォームに依存しない GPLv3パイソン2.1 [ 54 ]
python-ini [ 55 ]はい いいえ いいえ はい ブール値数値文字列Null読む + 書く プラットフォームに依存しない BSDパイソン1.1.0
ルードコンフィグ[ 56 ]はい いいえ いいえ いいえ ブール値数値文字列読む + 書く LinuxWindowsGPLC++廃止 – 最終バージョンは5.0.5、2009年11月[ 57 ]
Windows APIはい いいえ いいえ いいえ 数値文字列構造体読み取り + 書き込み(非破壊) ウィンドウズ独自のC25H2 (10.0.26200.7705) (2026年1月29日[ 58 ] ) [±] (2026年1月29日
Wine ( Windows APIの実装) はい いいえ いいえ いいえ 数値文字列構造体読み取り + 書き込み(非破壊) LinuxmacOSWindowsLGPLC11.0 [ 59 ] ウィキデータで編集する 2026年1月13日 (2026年1月13日
Rust configparser [ 60 ]はい いいえ いいえ いいえ ブール値数値文字列読む + 書く *BSDLinuxmacOSWindowsMITまたはLGPL v3.0+ さび3.0.2 [ 60 ] 2022年9月11日; 3か月前
java-ini-parser [ 61 ]はい いいえ はい はい ブール値数値文字列読む + 書く プラットフォームに依存しない アパッチジャワ1.4 [ 60 ] 2022年12月29日; 3日前
名前 セクションのサポート セクションネストのサポート 障害者入場認識 複数行のサポート 値の型 読み取り/書き込みサポート プラットフォームライセンスプログラミング言語最新リリースバージョン

ファイルマッピング

初期化ファイルマッピングは、INIファイルとWindowsレジストリ間のマッピングを作成します。[ 62 ] [ 63 ]これは、従来のファイルへの設定の保存から新しいレジストリへの移行手段として、Windows NTおよびWindows 95で導入されました.ini。ファイルマッピングはプロファイルAPI呼び出しをトラップし、IniFileMappingレジストリセクションの設定を使用して、レジストリ内の適切な場所への読み取りと書き込みを制御します。

以下の例では、文字列呼び出しによって、例えば という設定ファイルのownerセクションからnameキーを取得できます。返される値は文字列「John Doe」になります。 dbsettings.ini

GetPrivateProfileString ( "owner" "name" ... "c:\\programs\\oldprogram\\dbsettings.ini" );

INI マッピングは、このプロファイル API 呼び出しを受け取り、指定されたファイル名のパスを無視し、ディレクトリの下にファイル名と一致するレジストリ キーがあるかどうかを確認します。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping

存在する場合、要求されたセクションに一致するエントリ名を検索します。エントリが見つかった場合、INIマッピングはその値をレジストリの別の部分へのポインタとして使用します。次に、レジストリのその部分で要求されたINI設定を検索します。

一致するエントリ名が見つからず、そのエントリ名の下にエントリが存在する場合<em >(Default)</em>、INIマッピングは代わりにそのエントリを使用します。したがって、各セクション名には独自のエントリは必要ありません。

HKEY_LOCAL_MACHINE\Software\...\IniFileMapping\dbsettings.ini
(デフォルト)@USR:Software\oldprogs\inisettings\all
データベースUSR:ソフトウェア\oldprogs\inisettings\db

したがって、この場合、[owner]セクションのプロファイル呼び出しは次のようにマッピングされます。

HKEY_CURRENT_USER\Software\oldprogs\inisettings\all
名前ジョン・ドゥ
組織アクメ製品

ここで、「name」というレジストリエントリ名が、要求されたINIキーと一致することが確認されます。その後、「John Doe」という値がProfile呼び出しに返されます。この場合、defaultの@プレフィックスにより、dbsettings.iniディスク上のファイルへの読み取りは行われません。その結果、レジストリに見つからない設定はINIファイルで検索されません。

database」レジストリ エントリの値には @ プレフィックスが付いていません。そのため、[database]セクションのみ、レジストリの設定が最初に取得され、その後にdbsettings.iniディスク上のファイルの設定が取得されます。

代替案

Windows 95以降、マイクロソフトはINIファイルよりもWindowsレジストリの使用を強く推奨し始めました。[ 64 ] INIファイルは通常、2つのレベル(セクションとプロパティ)に制限されており、バイナリデータをうまく処理できません。しかし、この決定は批判を免れませんでした。レジストリはモノリシックで不透明かつバイナリであり、ファイルシステムと同期する必要があり、オペレーティングシステムの単一障害点となるからです。 [ 65 ]

その後、テキストファイルでの設定のエンコードには、 XMLベースの設定ファイルが一般的に使用されるようになりました。XMLは任意の複雑なレベルとネスト構造を許容し、バイナリデータのエンコードのための標準的なメカニズムを備えています。

最近では、JSONTOMLYAMLといったデータシリアル化形式が設定形式として利用できるようになっています。これら3つの代替形式は任意にネストできますが、INIファイルとは構文が異なります。その中でもTOMLはINIに最も似ていますが、TOMLをINIの大部分のサブセットと意図的に互換性を持たせるというアイデアは却下されました。[ 66 ]

しかし、最新のINIパーサーは、 XMLJSONTOMLYAMLの任意のレベルのネストを許可し、型指定された値Unicodeの同等のサポートを提供しますが、同じことを表現するための複数の構文を許可することで、INIファイルの「非公式な状態」を維持しています。[ 67 ]

参照

参考文献

  1. ^ Microsoft TechNet: iniファイル項目を構成する
  2. ^ .conf 初期化ファイル
  3. ^ Microsoft: Windows NT ワークステーション リソース キット
  4. ^ Microsoft Learn (2022年2月8日). 「Desktop.iniを使ってフォルダーをカスタマイズする方法」 . 2024年1月10日閲覧
  5. ^ Codrut Neagu、「デスクトップに Desktop.ini ファイルが 2 つあるのはなぜですか? また、それらのファイルはどのような機能を果たすのですか?」
  6. ^ Rasmus Lerdorf、Kevin Tatroe、Peter MacIntyre。 「PHPプログラミング」。「parse_ini_file」、「Extension INI Entries」などのセクション。
  7. ^ Christian Wenz. 「PHPとMySQLのフレーズ集」の「INIファイルの解析」セクション。引用:「…INIファイル形式は…Windowsの世界で広く使用されていましたが、今日ではPHPのようなソフトウェア製品の設定にも使用されています。例えば…php.ini
  8. ^ 「git-config 設定ファイル」
  9. ^ 「ファイルの基本フォーマット.specifications.freedesktop.org .
  10. ^ "systemd.service" . www.freedesktop.org .
  11. ^ "afp.conf — Netatalk 設定ファイル" . 2024年1月10日閲覧。
  12. ^ "pacman.conf(5)" . archlinux.org .
  13. ^ 「設定チートシート」 . forgejo.org . 2025年3月12日閲覧。
  14. ^ "EditorConfig" . editorconfig.org .
  15. ^ a b c libconfiniのライブラリ関数マニュアル
  16. ^ org.apache.commons.configuration2.INIConfiguration の Apache ドキュメント、Apache Software Foundation
  17. ^これにはWindows実装も含まれます。「GetPrivateProfileString関数」を参照してください。Microsoft Developer Network。Microsoft2012年6月2日閲覧
  18. ^ Gitプロジェクト. 「config.txt」 . 2024年1月10日閲覧
  19. ^ Gitプロジェクト. 「config.txt」 . 2024年1月10日閲覧
  20. ^ Gitプロジェクト. 「config.txt」 . 2024年1月10日閲覧
  21. ^ Cloanto 実装
  22. ^ Gitプロジェクト. 「config.txt」 . 2024年1月10日閲覧
  23. ^ Gitプロジェクト. 「config.txt」 . 2024年1月10日閲覧
  24. ^ INIファイルの作成者の間では、不要なエントリを完全に削除するのではなく、「コメントアウト」して無効化するのが一般的です。a次の例のキーをご覧ください。
    [セクション] #a=a b=b
  25. ^行継続の標準的構文は、 iniparser libconfini、およびjava.util.Properties
  26. ^ フレドリック・ルンド。 「Python標準ライブラリ」。 2001。セクション「ConfigParser モジュール」。 p. 143
  27. ^「ConfigParser – 構成ファイルパーサー」
  28. ^動作するように設計された言語( Python)の構文に従い、ConfigParserは、ノードを複数行にまたがるために、より一般的なバックスラッシュ+改行ではなく、後続の行でより深いインデントを必要とします(参照: configparser — 構成ファイルパーサー
  29. ^バージョン別 Python ドキュメント
  30. ^ GLib キーバリューファイルパーサー
  31. ^ Withnall, Philip (2021年2月11日). 「glib 2.66.7」 . GNOME ftp-release (メーリングリスト) . 2021年2月12日閲覧
  32. ^リリース · GNOME/glib
  33. ^ inifileドキュメント
  34. ^リリース · inifile
  35. ^ inih README
  36. ^インデントを使用し、ConfigParser のアプローチに明示的に従います (詳細についてはプロジェクトのドキュメントを参照してください)
  37. ^リリース · benhoyt/inih
  38. ^ iniparser ドキュメント
  39. ^リリース · iniparser/iniparser
  40. ^プロパティ (Java Platform SE 8)
  41. ^ 「OpenJDK: GPLv2 + クラスパス例外」 . Openjdk.java.net. 1989年4月1日. 2016年2月9日閲覧
  42. ^ 「BCL For Java SE」 . Oracle.com. 2013年4月2日. 2016年2月9日閲覧
  43. ^ 「Java Development Kit 25 リリースノート」 . Oracle Corporation . 2025年6月9日閲覧。
  44. ^ 「Java™ SE Development Kit 21、21.0.5リリースノート」 . Oracle Corporation . 2024年10月16日閲覧。
  45. ^ 「Java™ SE Development Kit 17、17.0.13リリースノート」 . Oracle Corporation . 2024年10月16日閲覧
  46. ^ 「Java™ SE Development Kit 11、11.0.25 リリースノート」 . Oracle Corporation . 2024年10月16日閲覧
  47. ^ 「Java™ SE Development Kit 8、Update 431 リリースノート」 . Oracle Corporation . 2024年10月16日閲覧。
  48. ^ libconfini ドキュメント
  49. ^リリース · madmurphy/libconfini
  50. ^ PHP . — 設定ファイルを解析する」 .公式PHPドキュメント. 2022年7月19日閲覧。parse_ini_file()
  51. ^ PHPライセンスv3.01
  52. ^ 「バージョン 8.5.2」 2026年1月15日. 2026年1月17日閲覧
  53. ^ PyINI
  54. ^タグ · whoatemybutter / PyINI
  55. ^ python-ini
  56. ^ RudeConfig ドキュメント
  57. ^リリース · RudeConfig
  58. ^ 「2026年1月29日 - KB5074105 (OS ビルド 26200.7705 および 26100.7705) プレビュー」 . Microsoft サポート. Microsoft .
  59. ^ 「Wine 11.0 リリース」 2026年1月13日. 2026年1月16日閲覧
  60. ^ a b c "configparser on crates.io" . crates.io . 2022年12月12日.オリジナルより2022年12月12日時点のアーカイブ。 2022年12月12日閲覧
  61. ^ java-ini-parser github ページ
  62. ^初期化ファイルとレジストリ Windows NT ワークステーション リソース キット Microsoft TechNet
  63. ^ NT レジストリの管理 Windows NT レジストリの管理、Paul Robichaux、O'Reilly Media
  64. ^システムレジストリ
  65. ^ Windowsレジストリは良いアイデアだったのか? – Coding Horror
  66. ^ 「 GitHubの「.INI 互換性は価値のある目標」問題に関するコメント」。GitHub
  67. ^ libconfini/README