msgrcv 시스템 콜에서 msgtype은 무엇입니까? msg 유형의 의미는 무엇입니까? Begineers langauge에서 설명해 주시겠습니까 ?? int msgrcv (int msqid, void * msgp, size_t msgsz, long msgtyp, int msgflg);메시지 큐 관련 이슈
- 는
구조체 mybuff { 긴 MTYPE INT 플래그 숯 버프 [50] }
BUF이하 및 (msgsnd는를 전송하는 동안 바와 같이 I 메시지 큐 구조체를 사용하는 경우 정확한 MSGID, & BUF,는 sizeof (BUF)에 documentation에서, 0)
답변
:
인자 msgtyp을 다음과 같이 요청 메시지의 타입을 지정
*
msgtyp을 다음 큐의 첫 번째 메시지가 판독되고 0 인 경우. 만일 msgtyp가 0보다 크면 MSG_EXCEPT이 경우 유형의 큐에서 첫번째 메시지하지 에서 msgflg에에 명시되지 않는 한
*
다음 msgtyp 타입 큐의 첫 번째 메시지가 읽어 msgtyp와 동일하면 을 읽습니다.
*
msgtyp을 0 미만, 판독 것이다 만일 msgtyp의 절대 값보다 작거나 같은 낮은 유형 대기열 후 첫 번째 메시지 인 경우. 그 크기에 Blank로 지정된
struct msgbuf { long mtype; /* message type, must be > 0 */ char mtext[1]; /* message data */ };
는는 여러 줄 필드 배열 (또는 다른 구조) 문서에서도
msgsnd()
번째 파라미터는 이러한 구조에 포인터이어야 , 음수가 아닌 정수 값
세 번째 매개 변수는이 전체 구조의 크기가 아니라 mtype
다음의 모든 크기입니다. 따라서 sizeof(buf)-sizeof(long)
입니다.
초급 언어로 msgtype 필드를 사용하면 개발자는 큐의 메시지 처리 방식을 유연하게 설계 할 수 있습니다. 모든 유형은 구분하려는 항목을 나타내는 정수입니다. 예를 들면 다음과 같습니다.
(a) a 종류 메시지입니다. 구매 거래 대 환불 거래. 이렇게하면 동일한 대기열에 두 가지 (또는 잠재적으로 더 많은) 종류의 메시지를 허용합니다.
(b) 어떤 프로세스가 메시지를 처리해야하는지에 대한 지시자. msgrcv
함수는 메시지의 특정 유형 만 읽을 때 사용할 수 있습니다. 예를 들어 클라이언트는 하나의 큐에 구매, 판매, 환불, 상태 등의 종류의 메시지를 쓸 수 있습니다. 그러나 여러 프로세스가 관심있는 메시지 만 찾는 큐를 읽을 수 있습니다. BuyPgm은 구매 거래만을 읽습니다.
(c) 충분한주의를 기울이면 클라이언트와 서버가 동일한 큐를 공유 할 수있는 방식으로 msgtype을 사용할 수 있습니다. 일반적으로 대기열은 First In First Out 메커니즘이므로 클라이언트는 일반적으로 하나의 대기열을 읽고 다른 일부 처리를 위해 별도의 대기열을 작성합니다. 그들이 작성한 메시지를 읽지 않으려면 두 개의 대기열이 필요합니다. Msgtypes는이 문제를 해결합니다. 예를 들어, 클라이언트는 msgtypes가 1..100 사이의 다양한 메시지를 작성할 수 있습니다. 일부 프로세스는 이러한 메시지를 처리 한 다음 결과 메시지를 msgtype 200..300으로 쓸 수 있습니다. 원래 클라이언트는 원래 200-300 범위의 메시지 만 읽음으로써 작성한 동일한 큐에서 응답 메시지를 수신 할 수 있습니다. (또는 어떤 msgtype 프로토콜을 만드는지)
(d) msgtypes를 사용하여 일반 대기열을 원하지만 효과적인 우선 순위 대기열로 전환 할 수 있습니다. 예를 들어 모든 주문 트랜잭션의 대기열이있을 수 있지만 중요한 고객이 msgtype을 기반으로 먼저 처리되도록 msgtype 프로토콜을 설계합니다.
chisaycock은 대기열을 읽는 규칙을 게시했습니다. 얼핏보기에는 힘이 들지만 실제로는 그것이 가라 앉을 때 의미가 있습니다.
- 1. 로컬 메시지 큐 서버가없는 원격 메시지 큐
- 2. 아이폰의 memoryleak 관련 이슈
- 3. 메시지 큐 멀티 스레드
- 4. POSIX 메시지 큐 보안
- 5. jquery의 메시지 큐
- 6. 지연된 메시지 큐 호출?
- 7. 클러스터의 비동기 메시지 큐
- 8. IPC - 메시지 큐
- 9. 멀티 캐스트 메시지 큐
- 10. 아마존 SQS 메시지 큐
- 11. 프로세스의 메시지 큐 모니터링
- 12. IRC 메시지 큐 만들기
- 13. 유닉스 메시지 큐
- 14. 파이프 대 메시지 큐
- 15. 메시지 큐 생각
- 16. 메시지 큐 모델링
- 17. APNS 및 메시지 큐
- 18. Prototype.AJAX로 큐 메시지 전송
- 19. 메시지 큐 또는 스케줄러
- 20. 지속성 메시지 큐
- 21. 메시지 큐 ENOMEM
- 22. 메시지 큐 오류
- 23. 조건부 통지자가있는 메시지 큐
- 24. VB6보기 메시지 큐
- 25. win32 : 메시지 큐 읽기
- 26. WinAPI 메시지 큐 예
- 27. 메시지 큐 루핑
- 28. Windows 용 메시지 큐
- 29. Memcache 기반 메시지 큐?
- 30. 메시지 큐 솔루션 구현 방법