공유 메모리 사용에 대해
글쓴이: eic8 / 작성시간: 목, 2003/03/20 - 3:10오후
공유 메모리를 사용해서 두 프로세스간 데이터 교환을 하려고 하려고 하는데 문제는 버퍼를 배열로 잡아야 하기 때문에 컴파일시 버퍼의 크기가 결정되어 버린다는 점입니다.
커맨드 라인 옵션 등으로 버퍼의 크기를 유동적으로 정하고 싶은데 공유 메모리를 사용하게 되면 new나 malloc같은 걸로 메모리를 잡을 수가 없다는데 문제가 있습니다.
한 프로그램은 공유 메모리에 데이터를 쓰고 다른 프로그램은 읽기만 합니다. 그렇다고 읽는 프로그램에 똑같은 옵션을 받아서 쓰는 프로그램에서 주었던 옵션과 같은 옵션 값을 주도록 하는 것도 이상하고... 읽는 프로그램에 공유 메모리에 저장되어 있는 데이터의 크기를 동적으로 파악해서 사용할 수 있는 방법은 없을까요? shmget은 호출시에 사이즈를 물어보기 때문에 불가능할 것 같기도 하고...
도와 주세요.
Forums:
1. buffer size를 configuration file에 적는 방
1. buffer size를 configuration file에 적는 방법.
2. 공유메모리 말고 다른 IPC로 buffer size를 전달하는 방법.
3. 공유메모리의 처음부터 몇바이트를 헤더로 잡고 거기에 공유메모리의 전체 크기를 적어놓는방법 ( 이 경우는 읽는 쪽에서 shmget을 두번해야 할 것 같네요 ).
이정도 방법이 있을것 같은데... 가능하다면 1번이 제일 좋아보입니다.
우리 모두 리얼리스트가 되자. 그러나 가슴에 이룰 수 없는 꿈을 가지자
감사
대단히 감사합니다.
그런 간단한 방법이 있는 줄 생각 못했네요. ^^
세번째 방법도 구현하면 conf 파일을 이용하지 않는 경우에 좋을 것 같네요.
댓글 달기