zx_stream_create

摘要

透過 VMO 建立串流。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_stream_create(uint32_t options,
                             zx_handle_t vmo,
                             zx_off_t seek,
                             zx_handle_t* out_stream);

說明

zx_stream_create() 會建立串流,而該串流會讀取及寫入 基礎 VMO

串流的跳轉偏移會初始化為 seek

選項

ZX_STREAM_MODE_READ這個訊息串將用於讀取。如果提供了 vmo 缺少 ZX_RIGHT_READ,這個函式會傳回 ZX_ERR_ACCESS_DENIED。否則 ZX_RIGHT_READ 將會新增為 這樣就能在已建立的串流物件上新增錯誤

ZX_STREAM_MODE_WRITE系統會使用串流進行寫入。如果提供了 vmo 缺少 ZX_RIGHT_WRITE,這個函式會傳回 ZX_ERR_ACCESS_DENIED。否則 ZX_RIGHT_WRITE 將會新增為 這樣就能在已建立的串流物件上新增錯誤

ZX_STREAM_MODE_APPEND 系統會以附加模式建立串流。串流 附加模式會以不可分割的形式,為內容設定串流的跳轉偏移 再以串流方式寫入 zx_stream_writev()

權限

TODO(https://fxbug.dev/42107318)

傳回值

zx_stream_create() 會在成功時傳回 ZX_OK。如果發生以下情況: 失敗時,會傳回下列其中一個值。

錯誤

ZX_ERR_BAD_HANDLEvmo 不是有效的帳號代碼。

ZX_ERR_WRONG_TYPE vmo 並非 VMO 控制代碼。

ZX_ERR_ACCESS_DENIED vmo 沒有指定項目的必要權利 只要設定成「自動重新啟動」 和「在主機維護期間」選項即可

ZX_ERR_INVALID_ARGS out_stream 是無效的指標或 NULL,out_stream 將不支援的位元設為 1。

ZX_ERR_NO_MEMORY 因記憶體不足而失敗。

另請參閱