关闭子例程
用途
关闭所有套接字发送和接收操作。
库
标准 C 库 (libc.a)
语法
描述
shutdown 子例程禁用指定套接字上的所有 receive 和 send 操作。
必须在将 _BSD 宏设置为特定值的情况下编译包含 shutdown 子例程的所有应用程序。 可接受的值为 43 和 44。 此外,所有套接字应用程序都必须包含 BSD libbsd.a 库。
参数
| 项 | 描述 |
|---|---|
| 套接字 | 指定套接字的唯一名称。 |
| 方式 | 指定子例程关闭的类型。 使用下列值:
|
返回值
成功完成后,将返回值 0。
如果 shutdown 子例程不成功,那么子例程处理程序将执行以下函数:
- 会向调用程序返回-1的值。
- 将指示特定错误的错误代码移动到 errno 全局变量中。 有关 errno 变量的进一步说明,请参阅 一般编程概念: 编写和调试程序中的 错误通知对象类 。
错误代码
如果发生以下任何错误,那么 shutdown 子例程将失败:
| 错误 | 描述 |
|---|---|
| EBADF | Socket 参数无效。 |
| EINVAL | How 参数无效。 |
| ENOTCONN | 未连接套接字。 |
| ENOTSOCK | Socket 参数引用文件,而不是套接字。 |
文件
| 项 | 描述 |
|---|---|
| /usr/include/sys/socket.h | 包含套接字定义。 |
| /usr/include/sys/types.h | 包含未签名数据类型的定义。 |