-
Notifications
You must be signed in to change notification settings - Fork 54
sockopt
果冻虾仁 edited this page Jan 31, 2015
·
3 revisions
##函数原型
#include <sys/socket.h>
int getsockopt(int sockfd, int level, int optname,
void *optval, socklen_t *optlen);
int setsockopt(int sockfd, int level, int optname,
const void *optval, socklen_t optlen);##描述 ###getsockopt 获得套接字sockfd在层次level上的选项optname的值。此选项之值存放子optval所指的缓冲区中。 ###setsockopt 设置套接字sockfd在层次level上的选项optname的值。选项值传递optval所指缓冲区中,optlen给出缓冲区的大小。 ##SOL_SOCKET层套接字选项
| optname | 描述 | 数据类型 |
|---|---|---|
| SO_BROADCAST | 允许发送广播数据报 | int |
| SO_DEBUG | 打开调试追踪 | int |
| SO_DONTROUTE | 绕过协议的路由机制 | int |
| SO_KEEPALIVE | 周期性地测试连接是否仍建立 | linger |
| SO_LINGER | 如果有数据要发送,是否延迟关闭 | int |
| SO_OOBINLINE | 嵌入方式接收带外数据 | int |
| SO_RCVBUF | 接收缓冲区大小 | int |
| SO_SNDBUF | 发送缓冲区大小 | int |
| SO_RCVTIMEO | 接收超时 | timeval |
| SO_SNDTIMEO | 发送超时 | timeval |
| SO_TYPE | 套接字类型 | int |
| 以上选项除了SO_TYPE仅适用于getsockopt函数外,其余选项两个函数都适用。 |
Talk is cheap, show me the code!
C语言API包含部分标准C的API、POSIX标准的系统编程API(一些Linux独有的系统API会单独注明)。
大部分头文件源码在/usr/include目录下。
因为涉及到大量的POSIX编程。所以最好下载POSIX函数的man手册。
apt-get install manpages-posix
apt-get install manpages-posix-dev
默认安装了manpages-dev,所以不装POSIX的man手册是可以查看绝大部分API的。
但是不装的话,有些API是不能看到的,比如posix_spawn函数。
yum install man-pages.noarch
关于目录
左侧的目录并非以函数为索引依据,主要是以系统的man手册页面为索引依据。
比如exec里面包含6个函数、pipe里面包含pipe()和pipe2()两个函数,但是它们都是属于一个man页面中。