方法

声明 [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,则你必须将其初始化为 NULLGError*
如果没有错误,参数将被方法初始化为 NULL
发生错误时,参数将被设置为一个新的 GError;调用者将获取数据的所有权,并负责释放它。

返回值

类型: gssize

写入的字节数,或发生错误时返回 -1。