方法
GioOutputStreamwritev
自从:2.60
声明 [src]
gboolean
g_output_stream_writev (
GOutputStream* stream,
const GOutputVector* vectors,
gsize n_vectors,
gsize* bytes_written,
GCancellable* cancellable,
GError** error
)
描述 [src]
尝试将包含在 n_vectors
个向量中的字节写入流。在操作期间将会阻塞。
如果 n_vectors
是 0 或者 vectors
中所有字节的和为 0,返回 0 并不执行任何操作。
成功时,返回写入流中的字节数。如果不是请求的大小,这不是一个错误,因为比如在部分 I/O 错误发生时,或者流中存储空间不足时,这可能会发生。所有写入操作会阻塞直到至少写入一个字节或发生错误;如果 n_vectors
为 0 或 vectors
中所有字节的和为 0,0 永远不会返回。
如果 cancellable
不是 NULL
,那么操作可以通过在其他线程中触发可取消对象来取消。如果操作被取消,将返回错误 G_IO_ERROR_CANCELLED
。如果操作在取消操作时已部分完成,将返回部分结果,不包含错误。
某些对 g_output_stream_writev()
的实现可能对总缓冲区大小有限制,如果超过这些限制,将返回 G_IO_ERROR_INVALID_ARGUMENT
。例如,在 UNIX 平台上向本地文件写入时,总缓冲区大小必须不超过 G_MAXSSIZE
字节。
自2.60版本起可用:
参数
向量
-
类型:
GOutputVector
数组包含要写入的
GOutputVectors
的缓冲区。数组长度由 n_vectors
参数指定。数据由方法的调用者拥有。 n_vectors
-
类型:
gsize
要写入的向量数量。
bytes_written
-
类型:
gsize*
存储写入到流中的字节数量的位置。
该参数将由函数设置。 该参数可以是 NULL
。 cancellable
-
类型:
GCancellable
可选的可取消对象。
该参数可以是 NULL
。数据由方法的调用者拥有。 error
-
类型:
GError **
用于可恢复错误的返回位置。
该参数可以是 NULL
。如果返回位置不是 NULL
,则必须将其初始化为NULL
GError*
。如果没有错误,方法将将参数初始化为 NULL
。在发生错误的情况下,该参数将设置为新的 GError
分配;调用者将负责拥有数据,并负责释放它。