inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

- Live Programming(file mapping)

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

202

JJ

작성한 질문수 6

1

monitor( ) 코드에서 ' close(fd); ' 가 while 문 전에 위치하는데, 이 부분이 잘 해석이 안됩니다. 

얼핏 생각해서는 munmap( ) 처럼 모든 일을 마무리하고 함수를 빠져 나가기 직전에 해 주는 것이 '더 적절한'  것이라 생각했는데, 실제 코드는 별 무리없이 작동하기에 더 해석이 안되는 것 같습니다. 

file mapping 을 통한 shared memory 방식은 실제로는 file I/O 이므로, mmap( ) 이후에 함수 빠져나가기 직전까지  계속해서 스트림이(이 표현이 맞는건지는 잘 모르겠네요..) 살아 있어야 할 것 같은데, 실제로는 그렇게 하지 않아도 코드가 잘 실행되서 잘 이해가 안됩니다. 

linux

답변 1

1

런잇(ProgCoach4U)

파일을 열고, 그 열린 파일에 대해 mmap을 한 것이죠. 그 열린 파일 입장에서 보면 자신을 제어할 수 있는 루트가 두군데인 상황이 된 것이죠. fd를 이용한 조작도 가능하고, mmap으로도 조작이 가능한 것이죠. 이런 불확실한 상황을 만들지 않기 위해 mmap()을 성공한 후 바로 fd를 닫아준 것입니다. 

추가 질문 있으시면 답글로 질문 남겨주세요. 좋은 질문 감사합니다.

fork() 후 address

0

40

2

bind(): Address already in use

0

57

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

1180

1

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

1

2324

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

에러 - bind(): Address already in use

1

1136

1

POSIX MQ의 설정 문의

1

601

2

accept 함수에 대한 문의

1

291

1

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

1

1503

1

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

0

304

3