fifo는 먼저 들어온 순서로 동작하지만, message queue는 빠른 우선순위로 동작한다. signal handler를 정의하여 사용할 수도 있다. message noty는 queue가 비어있을 경우 한번 동작한다. queue가 차 있다면 signal을 무시한다. 한 번 사용하면 다시 시그널을 등록해야 한다. pi@raspberrypi:~/Project/cCode/IPC $ cat mesquereceive.c //message que header #include <unistd.h> #include <stdio.h> #include <fcntl.h> #include <sys/stat.h> #include <mqueue.h> #include <signal.h> #define…… message queue, unix network programming 75p ~ 90p 계속 읽기
[태그:] ipc
fifo 예제. unix network programming 55p
pipe는 이름을 없어 parent, child process만 통신이 가능하다. 이를 보안한게 named pipe인데, fifo라고도 한다. 책은 다른 유닉스 버전으로 작성하여, linux에 맞게 수정했다. 결론적으로 pipe와 비슷하고 더 쉽다. #include <stdlib.h> #include <stdio.h> #include <errno.h> #include <unistd.h> #include <sys/types.h> #include <fcntl.h> #include <sys/wait.h> #include <string.h> #include <sys/stat.h> #include <unistd.h> #define FIFO1 “/tmp/fifo.1” #define FIFO2 “/tmp/fifo.2” #define MAXLINE…… fifo 예제. unix network programming 55p 계속 읽기
pipe 예제. unix network programming 47p
pipe를 이해하기 전, 일단 gdb를 사용하는 방법을 알아야 했다. pipe가 서로 다른 프로세스를 연결하는 수단이라, gdb 기본 설정으로는 pipe로 어떤 내용을 확인하기 어려웠다. 아래 코드를 디버그 하기로 했다. #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> #include <string.h> #define MAXLINE 100 void client(int, int), server(int, int); void server(int readfd, int writefd){ char buff[MAXLINE];…… pipe 예제. unix network programming 47p 계속 읽기