方法

GioIOStreamclose

自:2.22

声明 [源]

gboolean
g_io_stream_close (
  GIOStream* stream,
  GCancellable* cancellable,
  GError** error
)

描述 [源]

关闭流,释放与之相关的资源。这也会关闭单个输入和输出流,如果它们尚未关闭。

一旦关闭流,所有其他操作都将返回 G_IO_ERROR_CLOSED。关闭流多次不会返回错误。

关闭流将自动刷新流中的任何未完成的缓冲区。

流在最后一个引用释放时会自动关闭,但您可能需要调用此函数以确保尽可能早地释放资源。

有些流可能会在关闭流后保持流的底层存储(例如文件描述符)打开。有关详细信息,请参阅有关特定流文档。

在失败的情况下,将报告第一个发生的错误,但关闭操作将尽可能完成。未能关闭的流仍将在所有操作中返回 G_IO_ERROR_CLOSED。尽管如此,检查和报告错误仍然很重要,否则可能会丢失数据,因为所有数据可能都没有被写入。

如果 cancellable 不是 NULL,则可以从另一个线程触发可取消对象来取消操作。如果操作被取消,将返回错误 G_IO_ERROR_CANCELLED。取消关闭将仍然使流关闭,但某些流可以使用更快的关闭方法,例如检查错误而不阻塞。

此方法的默认实现只是对单个输入/输出流调用close。

自:2.22

参数

cancellable

类型: GCancellable

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

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

类型: GError **

recoverable错误的返回位置。

参数可以是NULL
如果返回位置不是NULL,则必须将其初始化为NULLGError*
如果没有错误,方法将保留参数初始化为NULL
如果在发生错误的情况下,参数将被设置为一个新的 GError 分配;调用者将拥有数据,并负责释放它。

返回值

类型: gboolean

成功时返回 TRUE,失败时返回 FALSE