나는 최근에 리눅스에서 메시지 큐 (System V,하지만 POSIX도 괜찮아 야 함)를 사용 해왔다. 그리고 그들은 내 응용 프로그램에 완벽하게 보일 것이다. 그러나 The Art of Unix Programming을 읽은 후에 나는 그들이 정말로 좋은 선택. 메시지 큐는 Linux에서 더 이상 사용되지 않습니까?
http://www.faqs.org/docs/artu/ch07s02.html#id2922148
V IPC 시스템의 상부, 메시지 전달 층
주로 사용으로 떨어졌다. 공유 메모리와 세마포어로 구성된 하위 계층은 동일한 컴퓨터에서 실행되는 프로세스간에 상호 배제 잠금 및 일부 전역 데이터 공유를 수행해야하는 상황에서 중요한 응용 프로그램을 보유하고 있습니다. 이 System V 공유 메모리 기능은 Linux, BSD, MacOS X 및 Windows에서 지원되지만 POSIX 공유 메모리 API로 발전했지만 고전적인 MacOS는 아닙니다. http://www.faqs.org/docs/artu/ch07s03.html#id2923376는 리눅스와 다른 현대 유닉스에 존재한다. 그러나, 그들은 유산 기능이기 때문에, 아주 자주 운동하지 않습니다. Linux 버전은 2003 년 중반 현재까지 버그가있는 것으로 알려져 있습니다. 아무도 그들을 돌볼만큼 신경 쓰지 않는 것 같습니다.시스템 V IPC 시설
최근 버전의 Linux에서 System V 메시지 대기열이 여전히 버그가 있습니까? 저자가 POSIX 메시지 대기열이 괜찮다는 것을 의미하는지 확신 할 수 없습니까?
소켓이 거의 모든 것 (?)에 대해 선호되는 IPC 인 것으로 보이지만 소켓이나 다른 것으로 메시지 대기열을 구현하는 것이 얼마나 간단한 지 알 수 없습니다. 아니면 너무 복잡하게 생각하고 있습니까?
내가 임베디드 리눅스와 관련이 있는지는 모르겠다.
7 년 후 .. 아직 우연히 다소 관련성이 있습니다. 우분투 14.04, 리눅스 3에서 메시지 큐의 기본 설정에 대해 궁금합니다.(큐에있는 메시지)와'/ proc/sys/fs/mqueue/msgsize_max'는 8192 (바이트)입니다 - 그들은 기이하게 작습니다. 이러한 기본값에 대한 몇 가지 엄격한 이유가 있습니까 아니면 오래된 것입니까? ('man mq_overview'는 msg_max에 대한 하드 제한이 약 32768로 상당히 높다고 말합니다.) 무한한 스트림과 같은 대기열을 만들려고하지는 않지만'msg_max'에 100-1000입니까? – xealits