kern_sogetopt 内核服务
用途
获取与套接字相关联的选项,无论是在套接字级别还是在协议级别。
语法
参数
| 项 | 描述 |
|---|---|
| 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 文件中定义的错误号。