Macユーザーなら、HFS+の勝手なファイル名の「正規化」には悩まされてますよね! まず浅い理解として、HFS+はファイル名をNFDに正規化する。次に、HFS+は互換漢字を統合漢字にはぜず、それ以外をNFDに正規化する。まあそれで合ってるんですけれど、実際にはそんな簡単な話ではありません。 この記事では、カーネルが行なっているファイル名の変換の再現に挑戦します。 ソースコード こういうものは一次ソースを見るのが一番です。外から挙動を推測したって見落としは出ます。Darwinのカーネルはオープンソースになってますので以下で見ることができます。 ファイルアクセスは、Darwinカーネルの中のDarwinのカーネルであるXNUというモジュールが担当してます。 http://www.opensource.apple.com/source/xnu/ うろうろ まず、ファイルアクセスAPIからやって来