fork 이후 parent 와 child process 간의 통신..을 하려고 하는데요...
while { fork() child process 는 Q 에서 pop 을 하고... execl parent process 는 아무짓도 안함... }
parent process 에게 child 에게 execl 이 종료 되거나 Q에서 pop 을 한다는 것을 어떻게 알려주는게 좋을까요?..
보통 fork 이전에 IPC를 설립해 놓고 (즉, 통신할 통로를 만들고) 부모와 자식간의 통신을 하죠.
위와 같이 IPC를 만들고 나서 이 IPC를 통해서 child에서 부모에게 pop한다는 메세지를 보내면 되지않습니까?
IPC는 pipe, fifo 등을 이용하면 되고, 메세지는 구조체 하나 정의해서 보내면 쉽게 해결될 겁니다.
e.g. struct customMessage { int type; }
berise@nowhere.comes.out
나름대로 유츄하자면, 내용은 두가지로 나누어 볼수 있군요.
1. parent에게 child의 종료를 알리고 싶다. 2. parent에게 child가 q에서 pop한다는 것을 알리고 싶다.
1번은 child가 종료하는 순간, SIGCHLD가 parent에게 오므로 그것을 처리하면 됩니다. 2번은 parent와 child가 IPC 메시지큐를 공유하는 것인가요? 흠. 그런데 pop하는 것을 알필요가 있다면 왜 Q를 쓰는지 잘 모르겠네요.. 그냥 socket으로 쏘면 되지 않을지... 아뭏든, 임의의 메시지를 프로세스 간 보낸다면, IPC를 쓰면 되겠네요..berise님이 쓰셨듯이..
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
IPC를 사용합니다.
보통 fork 이전에 IPC를 설립해 놓고 (즉, 통신할 통로를 만들고)
부모와 자식간의 통신을 하죠.
위와 같이 IPC를 만들고 나서 이 IPC를 통해서
child에서 부모에게 pop한다는 메세지를 보내면 되지않습니까?
IPC는 pipe, fifo 등을 이용하면 되고,
메세지는 구조체 하나 정의해서 보내면 쉽게 해결될 겁니다.
e.g.
struct customMessage {
int type;
}
berise@nowhere.comes.out
질문이 정확하지 않은데...
나름대로 유츄하자면, 내용은 두가지로 나누어 볼수 있군요.
1. parent에게 child의 종료를 알리고 싶다.
2. parent에게 child가 q에서 pop한다는 것을 알리고 싶다.
1번은 child가 종료하는 순간, SIGCHLD가 parent에게 오므로 그것을 처리하면 됩니다.
2번은 parent와 child가 IPC 메시지큐를 공유하는 것인가요? 흠. 그런데 pop하는 것을 알필요가 있다면 왜 Q를 쓰는지 잘 모르겠네요.. 그냥 socket으로 쏘면 되지 않을지... 아뭏든, 임의의 메시지를 프로세스 간 보낸다면, IPC를 쓰면 되겠네요..berise님이 쓰셨듯이..
댓글 달기