方法
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
,则必须将其初始化为NULL
的GError*
。如果没有错误,方法将保留参数初始化为 NULL
。如果在发生错误的情况下,参数将被设置为一个新的 GError
分配;调用者将拥有数据,并负责释放它。