memory mapping으로 int변수들을 공유할수 있어서 int[2]로 파이프의 fd를 공유해 놓고 다른 프로세스에서 그놈을 가져다가 write, read를 하려고 햇더니 EBADF(0x9)라는 오류가 뜨네요. 일반적인 파이프는 부모 자식 프로세스에서만 사용 가능한가요?
서로 다른 프로세스사이에서 fd를 전달하고 싶으면 sendmsg()와 recvmsg()를 사용하면 됩니다.
PHP에는 socket_sendmsg()와 socket_recvmsg()란 이름으로 제공되어지는것 같네요. 안타깝게도 php.net에도 별다른 설명이 없네요.
http://php.net/manual/en/function.socket-sendmsg.php
아래의 검색결과를 보면 C에서 어떻게 sendmsg() recvmsg()를 이용해 fd를 주고받는지 쉽게 찾을수 있습니다.https://www.google.com/?#q=sendmsg+recvmsg+file+descriptor+passing
그거 참조해서 php의 socket_sendmsg()와 socket_recvmsg()를 연구해보면 답이 나오지않을까 싶네요.
감사합니다!
텍스트 포맷에 대한 자세한 정보
<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]
서로 다른 프로세스사이에서 fd를 전달하고
서로 다른 프로세스사이에서 fd를 전달하고 싶으면
sendmsg()와 recvmsg()를 사용하면 됩니다.
PHP에는 socket_sendmsg()와 socket_recvmsg()란 이름으로 제공되어지는것 같네요.
안타깝게도 php.net에도 별다른 설명이 없네요.
http://php.net/manual/en/function.socket-sendmsg.php
아래의 검색결과를 보면 C에서 어떻게 sendmsg() recvmsg()를 이용해 fd를 주고받는지 쉽게 찾을수 있습니다.
https://www.google.com/?#q=sendmsg+recvmsg+file+descriptor+passing
그거 참조해서 php의 socket_sendmsg()와 socket_recvmsg()를 연구해보면 답이 나오지않을까 싶네요.
감사합니다!
감사합니다!
댓글 달기