Creative Commons License

FreeBSD에서 shm_open은 open일 뿐이다. IT



Linux에서 잘 써먹고 있는 파일처럼 쓸 수 있는 shared memory interface인 shm_open. 이게 표준안(POSIX.1)에 있길래 아무런 의심 없이 잘 썼지. 그런데 아쉽게도 FreeBSD에서 이 녀석은 단순히 open을 wrapping한 것일뿐. 즉, 그냥 일반 파일을 조작하는 것에 불과하다는 것이지. 현재 FreeBSD 6.2가 나왔지만 FreeBSD에서 제공하는 man page에는 아직도 래핑함수라는 걸 명시하고 있네.
In the FreeBSD implementation, POSIX shared memory objects are implemented as ordinary files.  The shm_open() and shm_unlink() act as wrappers around the open(2) and unlink(2) routines, and path, flags, and mode arguments are as specified for those functions.  The flags argument is checked to ensure that the access mode specified is not O_WRONLY (which is not defined for shared memory objects).
에구구... 안타까워라. 실제로도 FreeBSD에서 shm_open하면 실행한 디렉토리에 바로 파일이 만들어지네...

Powered by ScribeFire. -->


핑백

  • Purewell.BIZ : POSIX shared memory 2008-08-13 18:45:16 #

    ... 잘라내고(unlink), 접근한 녀석이 모두 떨어져 나가면 그때서야 OS에 반환해준다. 메모리상에 파일을 만든다는 점을 제외하고 파일과 다를 바 없다. 실제로 FreeBSD는 그냥 일반 파일에 넣는 것으로 구현했다. 반면 Linux 같은 경우 /dev/shm이라는 특수한 파일시스템에 객체를 생성한다. 이 파일시스템은 메모리를 파일시스템처럼 사용하는 것이며, F ... more


Google Adsense

Google Adsense

Google Analytics



C로그팬박스