inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

리눅스 IPC 프로그래밍 - 이론과 실습

- Live Programming(POSIX Message Queue)

POSIX MQ의 설정 문의

602

MIKE.aeon

작성한 질문수 53

1

mq_maxmsg  = 10

mq_msgsize = 8192

mq_open에서 위의 설정을 변경하면 오류가 발생합니다. 해당 값을 변경해서  mq를 만들려면 어떻게해야하나요?

linux

답변 2

0

MIKE.aeon

빠른 답변 감사합니다.

최대값보다 크게도 설정이 가능한줄 알고 했는데, 

답변주신대로, 설정값보다 작게 잘되서 root로 설정값을 크게하고 다시 설정값을 조정하니 오류없이 잘되고 있습니다.

감사합니다.

0

런잇(ProgCoach4U)

어떤 에러가 왜 발생했는지 알아야 해결이 가능할 것 같습니다. 

maxmsg/msgsize를 변경하여 mq_open() 시 에러가 발생하는 상황에서, errno는 어떤 값을 반환했나요?

maxmsg/msgsize를 위의 값보다 작게 변경하는 경우에도 생성이 실패하나요?

 - 위의 값(10/8192)보다 작은 값으로 설정하면 성공하고, 큰 값으로 설정한 경우에만 실패한다면 시스템의 max값 초과로 인해 실패할 수 있습니다.

 - maxmsg/msgsize의 최대값은 아래 명령으로 조회할 수 있습니다.

   -> cat /proc/sys/fs/mqueue/msg_max

   -> cat /proc/sys/fs/mqueue/msgsize_max

 - maxmsg/msgsize의 최대값은 아래 명령으로 설정할 수 있습니다.(단, root 권한 필요)

   -> echo 100 >  /proc/sys/fs/mqueue/msg_max

   -> echo 10000 >  /proc/sys/fs/mqueue/msgsize_max

같은 이름의 mqueue가 이미 생성되어 있지는 않나요?

 - /dev/mqueue/MQNAME 파일이 존재한다면 삭제하고 다시 시도해보세요.

답변 올려주시면 다시 검토해보겠습니다~

fork() 후 address

0

40

2

bind(): Address already in use

0

58

2

POSIX named semaphore 자원이 제대로 해지되지 못한 상태로 프로세스가 종료됐을 때 해당 semaphore 재사용 방법

0

215

2

강의 순서

0

262

1

강의자료 질문

0

243

1

수업 관련 질문

0

354

3

안녕하세요! 메세지 큐 방식에 대해 질문있습니다.

0

268

1

리눅스는 디버깅이 없나요?

1

722

1

fcntl 에서 Read/Write 기능

1

354

1

시스템 프로그래밍 향후 공부

1

506

1

Shared Memory와 동기화 관련

1

1181

1

거의 모든 함수를 static 선언하시는 이유는 무엇인가요?

1

2326

1

SHM_REMAP

1

317

2

recvfrom 질문

1

715

6

컴파일 질문입니다

1

675

1

partial send/recv에 관하여

1

670

1

스레드끼리의 통신에도 적용가능한가요?

1

374

1

File Lock API - 정리 table에서 multi-thread 사용가능시....

1

412

1

WSL Ubuntu에서 메시지 큐

1

464

1

shared memory(14강) live programming file mapping 에 관한 질문입니다.

1

203

1

에러 - bind(): Address already in use

1

1137

1

accept 함수에 대한 문의

1

292

1

datagram socket 구현시 recvfrom에서 블록킹됩니다.

1

1505

1

counting semaphore에 대해서 질문이 있습니다

0

305

3