あるシステムで、shm_openとやったときに、なぜか失敗してエラーコードにENOSYSが帰ってくることがあって、 「まさか共有メモリがノーサポートなわけなかろう、、、」 ということで調査してみました。 すると、どうやらLinux(glibcのLinuxの実装)ではまず/dev/shmの存在を確認してから、もしそれが無い場合は、/proc/mountsを調べて、tmpfsかshmfsの存在を調べるみたいでした。 それもなければENOSYSと。。。。 glibcのソースをみてようやく判りました。 結局Tmpfsでマウントしたディレクトリ以下に、なんらかのファイルを作ってるだけという感じですね。 で、まぁあとはmmapとかしますわな。 ということで、適当なディレクトリを作って、tmpfsでmountしてやるとENOSYSも返さずにさくさく動きました。 というか、この動作よくよく考えて見ますと、