Telling whether "foo.h" and "../bar/foo.h" are the same file is easy under UNIX (via the device/inumber pair returned from stat) but might be difficult under other operating systems.