send_fd

王朝百科·作者佚名  2010-06-06
窄屏简体版  字體: |||超大  

int send_id (int spipefd, int filedes);

int send_err(int spipefd, int status, const char *errmsg);

int recv_fd(int spipefd, ssize_t (*userfunc)(int, const void *, size_t));

当一个进程(通常是服务器)希望将一个文件描述符传送给另一个进程时,它调用s e n d _ f d或s e n d _ e r r。等待接收描述符的进程(客户机)调用r e c v _ f d。

s e n d _ f d经由流管道s p i p e f d发送描述符f i l e d e s。s e n d _ e r r 经由流管道s p i p e f d发送e r r m s g和 s t a t u s字节。s t a t u s的值应在-1 ~-2 5 5之间。

客户机调用r e c v _ f d接收一描述符。如果一切正常(发送者调用了s e n d _ f d),则作为函数值返回非负描述符。否则,返回值是由s e n d _ e r r发送的s t a t u s(-1 ~-2 5 5之间的一个值)。

另外,如果服务器发送了一条出错消息,则客户机调用它自己的u s e r f u n c处理该消息。

u s e r f u n c的第一个参数是常数S T D E R R _ F I L E N O,然后是指向出错消息的指针及其长度。客户机常将u s e r f u n c指定为U N I X的w r i t e函数。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航