タグ

ブックマーク / chromaprog.blog101.fc2.com (1)

  • クロマの戯れごと Linuxの共有メモリ(shm_open系)はただのファイルマップ?

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

    syuu1228
    syuu1228 2013/09/20
    あれー、そうなんだっけ:クロマの戯れごと Linuxの共有メモリ(shm_open系)はただのファイルマップ?
  • 1