inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

- Live Programming(SysV Message Queue)

msgsnd에서 IPC_NOWAIT flag

755

젓인

작성한 질문수 158

0

IPC_NOWAIT 플래그는 만일 메세지 큐가 생기지 않았다면 blocking을 계속 한다는 말인가요?

linux

답변 4

0

젓인

아.... man page를 꼼꼼히 읽겠습니다

0

젓인

아 제가 질문 마지막에 실수를..... 아 버퍼쪽 블로킹이구나 ㅎㅎㅎㅎ

0

런잇(ProgCoach4U)

앗.. msgsnd의 IPC_NOWAIT 플래그에 대한 질문이었네요. read-side 쪽의 설명을 드렸네요..ㅠㅠ

msgsnd에서 IPC_NOWAIT 플래그의 의미 역시 non-blocking으로 동작하겠다는 의미입니다. IPC_NOWAIT플래그가 없는 경우, msgsnd 시 버퍼에 여유 공간이 없으면(=꽉 차있으면) 버퍼가 필요한 양만큼 비워질 때까지 blocking 됩니다. 반면, IPC_NOWAIT 플래그가 설정된 경우 위와 같은 상황이라면 바로 에러 리턴을 합니다. msgsnd()의 경우 -1을 리턴하면서 errno가 EAGAIN으로 설정됩니다. 

 

0

런잇(ProgCoach4U)

IPC_NOWAIT 플래그는 blocking하지 않겠다는 의미 입니다. 결국 non-blocking mode로 동작하겠다는 의미이지요. 그래서 메시지 큐에 메시지가 없는데 read를 했을 때 blocking 되지 않고(=기다리지 않고) 바로 return을 합니다. 이것이 non-blocking mode의 동작 입니다.

fork() 후 address

0

40

2

bind(): Address already in use

0

59

2

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

0

216

2

강의 순서

0

262

1

강의자료 질문

0

244

1

수업 관련 질문

0

354

3

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

0

268

1

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

1

722

1

fcntl 에서 Read/Write 기능

1

354

1

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

1

507

1

Shared Memory와 동기화 관련

1

1182

1

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

1

2328

1

SHM_REMAP

1

318

2

recvfrom 질문

1

715

6

컴파일 질문입니다

1

675

1

partial send/recv에 관하여

1

670

1

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

1

375

1

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

1

412

1

WSL Ubuntu에서 메시지 큐

1

464

1

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

1

205

1

에러 - bind(): Address already in use

1

1138

1

POSIX MQ의 설정 문의

1

604

2

accept 함수에 대한 문의

1

295

1

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

1

1507

1