kern_sogetopt 内核服务

用途

获取与套接字相关联的选项,无论是在套接字级别还是在协议级别。

语法

#include <sys/kern_socket.h>
int  kern_sogetopt( ksocket_t  so, int level, int optname, struct mbuf **mp )

参数

描述
so 将用于检索此选项的套接字。
级别 套接字级别 (例如 SOL_SOCKET) 或协议级别 (IPPROTO_TCP)
optname 要检索的选项名称。 可在 <sys/socket.h> 中找到套接字选项,可在 <netinet/tcp.h> mp 中找到 TCP 选项
将随选项值一起返回的 姆布夫mp-> m_len 将为该值的大小。 调用者必须将 struct mbuf *的地址传递给您。 在函数成功返回后,调用者必须将 姆布夫 设置为 free。

描述

克恩索杰托普特 内核服务会在套接字级别或协议级别获取与该套接字关联的选项。

执行环境

克恩索杰托普特 内核服务可以从进程环境中调用。

示例

ksocket_t   so;
int		     rc;		 
struct mbuf *sopt = NULL;
int  tcp_nodelay = -1;
rc = kern_socreate(AF_INET, &so, SOCK_STREAM, IPPROTO_TCP);
if (rc != 0 )  		 
{ 		 		 
			return(-1); 		 
}		   		 
rc = sogetopt(so, IPPROTO_TCP, TCP_NODELAY, &sopt); 		 
if (rc != 0 )  		 
{ 		 		 
			return(-1); 		 
}		   		 
tcp_nodelay = *mtod(sopt, int *) ? 1 : 0; 		 
m_free(sopt); /* Caller needs to free the mbuf after kern_sogetopt */ 

返回值

描述
重大安全事件数量 成功时
>0 错误

非零返回值是 /usr/include/sys/errno.h 文件中定义的错误号。