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

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

(5개의 수강평)

119명의 수강생
55,000원
지식공유자 · ProgCoach4U
29회 수업· 총 11시간 27분수업
평생 무제한 시청
수료증 발급 강의
수강 난이도 중급
염정원 프로필

File Lock API - 정리 table에서 multi-thread 사용가능시.... 염정원 6일 전

교재내용 File Lock API - 정리 table(P15)에서  multi-thread 사용가능시 fcntl()과 flockfile()에서의 의미를 다르게 설명해놓으셨는데요. 두개의 구분이 잘안됩니다. 부언 부탁드립니다.

1
김선진 프로필

WSL Ubuntu에서 메시지 큐 김선진 1달 전

안녕하세요 윈도우10에서 WSL Ubuntu 18.04 LTS 환경에서 수업을 듣고 있는데

메시지큐부터 컴파일은 잘 되는데 실행하면 아래와 같이 나옵니다 

mq_open(): Function not implemented

init_msgq(): Function not implemented

1. 같은 코드를 CentOS에서 돌려보니 잘 되긴 하는데 윈도우에서 하는 방법은 없을까요? (lsp도 들었는데 지금까지 잘 됐습니다 )

2. -lrt 옵션을 줘야한다고 되어있는데 Makefile 어디를 수정해야하는지 모르겠어서 gcc 직접 하고 있습니다 ㅠ

답변 부탁드립니다~!

ps. 웹 개발자인데 너무 재밌게 잘 듣고 있습니다. 감사합니다

1
JJ 프로필

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

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

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

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

1
BYUNGSOO KIM 프로필

에러 - bind(): Address already in use BYUNGSOO KIM 2달 전

안녕하세요. 서버를 1번실행하고 다시 실행하면 아래와 같은 에러가 발생합니다. 어떻게 처리해야 하나요?

bind(): Address already in use

오류가 발생할때 마다 sock_stream_un 파일을 삭제하면 서버를 다시 실행가능합니다만, 다른 방법은 없는지 답변 부탁드립니다.

1
BYUNGSOO KIM 프로필

POSIX MQ의 설정 문의 BYUNGSOO KIM 2달 전

mq_maxmsg  = 10

mq_msgsize = 8192

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

2
Seyoung Cheon 프로필

accept 함수에 대한 문의 Seyoung Cheon 3달 전

accept 함수부분 설명에서 두번째와 세번째 파라미터에 NULL을 준다고 하셨는데, 왜 NULL을 주는 건지? bind함수처럼 지정하면 안되는지 궁금합니다.

1
Andy Ahn 프로필

datagram socket 구현시 recvfrom에서 블록킹됩니다. Andy Ahn 5달 전

https://github.com/positoy/study/blob/master/IPC/06_socket_datagram.c

위 코드인데요.

recvfrom의 flag를 MSG_DONTWAIT 으로 변경하면 다음처럼 write가 잘 안된 것처럼 안내합니다.

failed to recvfrom: Resource temporarily unavailable

원인이 무엇일까요?

1
유영재 프로필

counting semaphore에 대해서 질문이 있습니다 유영재 8달 전

counting semaphore가 사용되는 예를 알 수 있을까요? 너무 mutex에 집중되다보니 하나의 자원을 동시에 n명이 접근해도 되는건지가 의문이고 어떠한 경우에 사용되는지 모르겠습니다

3
유영재 프로필

read API가 많이 헷갈립니다 유영재 8달 전

snprintf(buf, sizeof(buf), "this is msg from sock_stream");

buf에 저렇게 저장해서 보내면 받는 쪽에서 read로 받을텐데

read API를 자세히 보면 EOF를 만났을 때 0을 리턴한다는데 실제로는 저 버퍼에는 EOF라는 -1이 들어가지 않고, 널문자로 마무리하는데 어떻게 EOF를 인식하는거죠? 자동으로 들어가는건가요?

1
유영재 프로필

네트워크 바이트 변환에 대해서 질문입니다 유영재 8달 전

빅 엔디안으로 통일하기 위해서 전송하기 전에 빅 엔디안으로 정렬하는 htons, htonl 함수를 안쓰고, 받는 쪽에서 데이터를 ntohs, ntohl 함수를 써도 동일하게 동작하기는 하나요? 전자쪽이 일반적이라는 것은 알고 있습니다!

1
유영재 프로필

bind man page에 있는 example 실행에 대해서 질문입니다 유영재 8달 전

http://man7.org/linux/man-pages/man2/bind.2.html

man page에 있는 예제를 실행하니까

permission error가 떠서 슈퍼 유저로 했더니 실행은 되는데 자꾸 포트 bind하고 풀어주지를 않네요...

1. 왜 저 코드는 permission을 줘야만 하나요?

2. sudo를 주고 했더니, bind를 풀어주지 않고 netstat -tnulp로 조회해서 pid를 죽여도 계속 살아있습니다

2
유영재 프로필

데이터 송수신 함수에 대한 질문입니다 유영재 8달 전

결국 소켓도 하나의 fd니까 read, write로 sendto와 recvfrom을 대체할 수 있다고 생각해서 찾아봤는데 서버 연결 유무에 따라서 사용할 수 있고 없고가 결정된다고 나와있습니다.

즉 TCP는 서버가 연결되어있기 때문에 write, read를 사용할 수 있고, UDP는 아니라고 되어있는데

서버 연결과 read, write에 대해 자세히 설명해주실 수 있나요?

2
유영재 프로필

Makefile에 대한 질문입니다 유영재 8달 전

선생님 Makefile을 유용하게 쓰고 있는데,

선생님은 Makefile에서 어떤 옵션이 같은 디렉토리 내에서 다수의 main이 존재하는 것인가요?

선생님 Makefile은 헤더파일이 있으면 동작이 안되어서 

https://gist.githubusercontent.com/surinoel/f00b345a8b8e91f80ac7b2084c4b4d90/raw/bcbc54c4b7c5d60916ecbdb949a582cd2b05e0cb/Makefile

제가 헤더파일을 링크하는 Makefile을 작성했는데, 선생님 기능(main이 독립적)을 넣고 싶은데 어떻게 할 수 있나요?

2
유영재 프로필

소켓을 계속 열어두고 받게하려면 어떻게 해야되나요? 유영재 8달 전

한 번만 전송되고 끝나는데 계속 blocking 하는 방법이 있을까요?

1
유영재 프로필

소켓을 이용한 IPC는 기존 다른 방식들과 어떠한 점이 차이가 있나요?? 유영재 8달 전

궁금합니다!

1
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스