摘要
設定寫入配置。
宣告
#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_DISABLED 和
disposition 或 disposition_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  帳號代碼不是有效的帳號代碼。
ZX_ERR_BAD_STATE  disposition 或 disposition_peer 包含
ZX_SOCKET_DISPOSITION_WRITE_ENABLED 和 handle 指的是
特定通訊端端點的緩衝資料
ZX_ERR_WRONG_TYPE  處理常式不是通訊端控制代碼。
ZX_ERR_ACCESS_DENIED  帳號代碼沒有 ZX_RIGHT_MANAGE_SOCKET。
ZX_ERR_INVALID_ARGS  disposition 或 disposition_peer 含有標記
或標記的組合無效