공유 메모리 혹은 메시지 큐에서, ID를 얻는 방법에 대한 질문입니다.
글쓴이: cococo / 작성시간: 금, 2006/01/06 - 3:48오후
두개 이상의 작업이 서로 데이터를 교환해야 하는데요. 작업을 pthread_create() / fork()로 생성시킬 가능성이 둘 다 있습니다.
이 때, 메시지 큐 방식을 이용해 데이터를 교환하려 하는데요.
최초 메시지 큐를 생성시킬 때에 모르는 것이 있어 질문 올립니다.
메시지큐를 msgget()으로 생성시킬 때, key값을 주잖아요?
근데, 이거... 암거나 정해도 되나요?
프로세스는 key값, 혹은 key값에 의거한 msgid를 기준으로 메시지를 교환하잖아요? 그럼 만일, 다른 어떤 프로그램이 메시지 큐 방식을 이용하고 있다면, 혹은 제가 프로그램을 실행한 후 다른 사람이 메시지 큐방식을 이용했을 때 우연히 저와 같은 키 값을 사용했다면, 데이터가 교환되 버리거나 프로그램 에러가 나 버리잖아요?
그렇다고 IPC_PRIVATE를 이용하면 두 개 이상의 프로그램 - fork()나 pthread_create()가 아닌, 두개의 다른 프로젝트에 의해 생성된 실행 파일들간의 데이터 교환 - 에서는 생성된 msgid를 모르니 데이터 교환이 안 될 듯 하구요.
이런 경우, 어찌 해야 하나요?
그럼, 좋은 하루 되시기 바랍니다. 행복하시구요. ^^*
Forums:
댓글 달기