zx_socket_set_disposition

摘要

设置写入操作的处理方式。

声明

#include <zircon/syscalls.h>

zx_status_t zx_socket_set_disposition(zx_handle_t handle,
                                      uint32_t disposition,
                                      uint32_t disposition_peer);

说明

zx_socket_set_disposition 设置 调用套接字句柄及其对等方的 zx_socket_write()

可以使用的有效处置标志:

ZX_SOCKET_DISPOSITION_WRITE_DISABLED - 为指定的 套接字端点。设置后,对指定套接字端点的写入将失败 尽在 ZX_ERR_BAD_STATE。如果从指定套接字端点读取 成功,直至指定套接字端点中缓冲的所有数据全部使用完毕; 失败并显示 ZX_ERR_BAD_STATE

ZX_SOCKET_DISPOSITION_WRITE_ENABLED - 为指定的 套接字端点。设置后,向指定的套接字执行读写操作 端点的行为方式与 zx_socket_write() 中指定的方式相同, zx_socket_read()

在套接字上指定 ZX_SOCKET_DISPOSITION_WRITE_ENABLED 无效 包含已缓冲数据的端点;将会导致 zx_socket_set_disposition 返回 ZX_ERR_BAD_STATE,没有任何操作 。

同时指定 ZX_SOCKET_DISPOSITION_WRITE_DISABLEDdispositiondisposition_peer 中的 ZX_SOCKET_DISPOSITION_WRITE_ENABLED; 否则会导致 zx_socket_set_disposition 返回 ZX_ERR_INVALID_ARGS,未执行任何操作。

权限

handle 的类型必须为 ZX_OBJ_TYPE_SOCKET 且包含 ZX_RIGHT_MANAGE_SOCKET

返回值

如果成功,zx_socket_set_disposition() 会返回 ZX_OK

错误

ZX_ERR_BAD_HANDLE handle 不是有效的句柄。

ZX_ERR_BAD_STATE dispositiondisposition_peer 包含 ZX_SOCKET_DISPOSITION_WRITE_ENABLEDhandle 是指具有 指定套接字端点上已缓冲的数据。

ZX_ERR_WRONG_TYPE handle 不是套接字句柄。

ZX_ERR_ACCESS_DENIED 句柄没有 ZX_RIGHT_MANAGE_SOCKET

ZX_ERR_INVALID_ARGS dispositiondisposition_peer 包含标志 或标志组合无效。

另请参阅