方法
GioOutputStreamclose
声明 [src]
gboolean
g_output_stream_close (
GOutputStream* stream,
GCancellable* cancellable,
GError** error
)
描述 [src]
关闭流,释放与流相关的资源。
一旦流被关闭,所有其他操作将返回 G_IO_ERROR_CLOSED
。关闭多个流不会返回错误。
关闭流将自动刷新流中的所有挂起缓冲区。
当最后一个引用被移除时,流将自动关闭,但您可能希望调用此函数确保资源尽早释放。
某些流在流关闭后可能仍保留流的副存储(例如文件描述符)打开。有关详细信息,请参阅各个流的文档。
在失败时,将报告发生的第一个错误,但关闭操作将尽可能地完成。未能关闭的流将仍然为所有操作返回 G_IO_ERROR_CLOSED
。仍然很重要的是检查并报告错误,否则可能会丢失数据,因为所有数据可能没有全部写入。
如果cancellable
不是NULL
,则可以从另一个线程触发可取消对象来取消操作。如果操作被取消,将返回错误G_IO_ERROR_CANCELLED
。取消关闭操作后仍然会关闭流,但某些流可以使用一种不阻塞的更快关闭方法,例如检查错误。在取消(以及任何错误)的情况下,不能保证所有写入的数据都将到达目标。
参数
cancellable
-
类型:
GCancellable
可选的可取消对象。
参数可以 NULL
。数据由方法的调用者拥有。 error
-
类型:
GError **
用于可恢复错误的返回位置。
参数可以 NULL
。如果返回位置不是 NULL
,则必须将其初始化为NULL
的GError*
。如果没有错误,方法将保留参数初始化为 NULL
。如果出现错误,将参数设置为新分配的 GError
;调用者将负责该数据,并负责释放它。