공유라이브러리의 데이터 공유 방법에 대해서 질문 드립니다
글쓴이: partita / 작성시간: 월, 2008/04/28 - 10:25오후
안녕하세요.
gnu환경에서 개발한지 얼마되지 않은 초보입니다.
요즘 공유라이브러리를 하나 만들고 있는데요,
공유라이브러리에서 생성하는 자료구조를 몇몇 어플리케이션에서
참조하고 싶은데 그게 잘 안되서 질문 드려요.
최초로 실행되는 어플리케이션이 공유라이브러리를 링크하면서,
라이브러리 내부에 전역변수를 체크해서 자료구조를 메모리에 올리고,
(전역 변수는 할당되는 메모리 포인터로서 NULL로 초기화되구요)
이후부터 이 라이브러리를 사용하는 어플리케이션은 참조만 하도록 하고 싶거든요.
공유라이브러리에서 전역 변수를 공유할 수 있는 방법이 __attribute__(section, "section명")
이렇게 사용할 수 있다고 해서 사용해 봤는데, 전역적으로 공유가 안되더라구요.
원래 되는게 맞는건지도 모르겠고, 이방법이 안되다면 다른 방법으로 할 수 있는 방법이 없을까요?
공유 메모리도 된다는데 아직 해보지는 않았구요, 가능하면 간단한 방법으로 되면 좋겠는데요..
경험 있으신 분들 조언을 기다립니다. ^^
Forums:
여러 프로세스가
여러 프로세스가 참조하는 메모리라면, 공유메모리를 사용하는 게 정석입니다. 상황에 따라 동기화가 필요할 수 있습니다.
Orion Project : http://orionids.org
공유라이브러리는
공유라이브러리는 코드를 공유한다는 말이지 데이타까지 공유 한다는 개념이 아닙니다.
서로 다른 프로세스가 공유 라이브러리르 이용하여 데이타를 공유하고자 할 경우
IPC 를 사용하여 공유 해야 합니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
댓글 달기