方法

GioBufferedInputStreamfill

声明 [src]

gssize
g_buffered_input_stream_fill (
  GBufferedInputStream* stream,
  gssize count,
  GCancellable* cancellable,
  GError** error
)

描述 [src]

尝试从流中读取count字节到缓冲区。在此读取期间将阻塞。

如果count为零,则返回零且不执行任何操作。大于G_MAXSSIZE的count将导致G_IO_ERROR_INVALID_ARGUMENT 错误。

成功时,返回填充到缓冲区的字节数。如果这与请求大小不同,这并不一定是错误,因为例如在文件末尾附近可能会发生这种情况。在文件末尾(或如果count为零)时返回零,但决不会在其他情况下返回。

如果count为-1,则尝试读取的大小等于填充缓冲区所需的字节数。

如果cancellable不为NULL,则操作可以通过从另一个线程触发可取消对象来取消。如果操作被取消,将返回错误G_IO_ERROR_CANCELLED。如果在操作被取消时操作已部分完成,则将返回部分结果,而不报错。

出错时返回-1,并将error相应地设置。

有关此函数的异步、非阻塞版本,请参阅g_buffered_input_stream_fill_async()

参数

count

类型: gssize

将从流中读取的字节数。

cancellable

类型: GCancellable

可选 GCancellable 对象,NULL表示忽略。

此参数可以是NULL
数据由方法调用者拥有。
error

类型: GError **

可恢复错误的返回位置。

此参数可以是NULL
如果返回位置不为NULL,则必须将其初始化为NULL GError*
如果没有错误,方法将使用NULL初始化此参数。
在出错的情况下,此参数将设置为新的GError;调用者将负责拥有数据,并在需要时释放它。

返回值

类型: gssize

将读取到stream缓冲区的字节数,最多为count,或者在错误时返回-1。