getsockopt/setsockopt的操作过程

2009-05-13 02:16:38来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

setsockopt(int s, int level, int optname, const void *optval,socklen_t optlen);
getsockopt(int s, int level, int optname, void *optval,socklen_t *optlen);
其实质是通过socket的形式和内核交换内存信息,其中optname由内核中解析,再分派到具体的函数,例如IP_FW_GET等IPFW的操作就由ipfw_ctl()负责.
optval是变量的名称,optlen则是该变量的长度.
在内核中通过sooptcopyout()函数来完成这个功能,而sooptcopyout()也是通过调用copyin/copyout来完成.
值得注意的是,在getsockopt的操作中,如果提供的内存区域不够大,sooptcopyout不会报错,而是截断了信息.


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/14376/showart_77192.html

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:FreeBSD常用指令简述(菜鸟级)

下一篇:SCREEN的使用