虚拟方法
自2.60开始
声明 [源位置]
void
writev_async (
GOutputStream* stream,
const GOutputVector* vectors,
gsize n_vectors,
int io_priority,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
)
说明 [源位置]
请求异步地将n_vectors
vectors
中的字节写入流。操作完成后,将调用callback
。然后您可以调用g_output_stream_writev_finish()
以获取操作的结果。
在异步请求期间不允许其他同步和异步调用,这将导致G_IO_ERROR_PENDING
错误。
成功时,写入的字节数将传递给callback
。如果这不是请求的大小,则这不是错误,因为例如在部分I/O错误的情况下可能会发生这种情况,但一般我们会尝试写入请求的字节数。
您可以保证此方法永远不会因G_IO_ERROR_WOULD_BLOCK
而失败 —— 如果stream
无法接受更多数据,方法将等待直到这种情况改变。
优先级更高的任何挂起I/O请求(较低的数值)将在较低优先级的任何挂起请求之前执行。默认优先级为G_PRIORITY_DEFAULT
。
异步方法具有默认的回退机制,该机制使用线程来实现异步性,因此对于继承类是可选的。但是,如果您覆盖一个,您必须覆盖所有。
有关此函数的同步、阻塞版本,请参阅g_output_stream_writev()。
注意,对vectors
不会进行副本,因此它必须在调用callback
之前保持有效。
自2.60起可用
参数
vectors
-
类型: 一组
GOutputVector
包含要写入的
GOutputVectors
的缓冲区。数组长度在 n_vectors
参数中指定。数据由方法调用者拥有。 n_vectors
-
类型:
gsize
要写入的向量数。
io_priority
-
类型:
int
请求的I/O优先级。
cancellable
-
类型:
GCancellable
可选的
GCancellable
对象,NULL
表示忽略。该参数可以是 NULL
。数据由方法调用者拥有。 callback
-
一个
GAsyncReadyCallback
,当请求得到满足时调用。 user_data
-
类型:
gpointer
传递给回调函数的数据。
该参数可以是 NULL
。数据由方法调用者拥有。