方法
声明 [src]
gssize
g_output_stream_write (
GOutputStream* stream,
void* buffer,
gsize count,
GCancellable* cancellable,
GError** error
)
描述 [src]
尝试将buffer中的count个字节写入流中。操作过程中可能会阻塞。
如果count为0,则返回0并什么也不做。如果count大于G_MAXSSIZE,将导致返回G_IO_ERROR_INVALID_ARGUMENT错误。
成功时,返回写入流中的字节数。如果这不是请求的大小,则不是错误,因为例如在部分I/O错误或流中没有足够存储的情况下可能会发生这种情况。所有写入都将阻塞,直到至少写一个字节或发生错误;0永远不会返回(除非count为0)。
如果cancellable不为NULL,则可以从另一个线程触发可取消对象来取消操作。如果操作被取消,将返回错误G_IO_ERROR_CANCELLED。如果在操作取消时操作已部分完成,将返回部分结果,不带有错误。
出错时,返回-1并将错误设置为error。
参数
buffer
-
类型: 一个包含
guint8
的数组包含要写入的数据的缓冲区。
数组的长度由count参数指定。 数据由方法的调用者拥有。 count
-
类型:
gsize
要写入的字节数。
可取消
-
类型:
GCancellable
可选的可取消对象。
参数可以是 NULL
。数据由方法的调用者拥有。 错误
-
类型:
GError **
恢复性错误的返回位置。
参数可以是 NULL
。如果返回位置不是 NULL
,则你必须将其初始化为NULL
的GError*
。如果没有错误,参数将被方法初始化为 NULL
。发生错误时,参数将被设置为一个新的 GError
;调用者将获取数据的所有权,并负责释放它。