函数

GLibclose

自 2.36 起

声明 [源代码]

gboolean
g_close (
  gint fd,
  GError** error
)

描述 [源代码]

这是对 close() 调用的包装。如果出错,error 中会保存 %errno,但错误也会以 GError 形式存储。如果成功,则 %errno 是未定义的。

除了使用 GError 之外,还有另一个更重要的原因让您优先选择此函数而不是系统提供的调用。在 Unix 上,它将尝试正确处理 EINTR,后者具有特定于平台的语义。

使用无效的文件描述符调用此函数是一个错误。

自 GLib 2.76 起在 POSIX 平台上,如果(且仅当)errorNULLfd 是有效的 open 文件描述符时,此函数就是异步信号安全的。这样,在这些条件下,可以安全地从信号处理程序或 GSpawnChildSetupFunc 调用。有关详细信息,请参见 signal(7)signal-safety(7)

自 2.36 起可用

参数

fd

类型: gint

文件描述符。

error

类型: GError **

可恢复错误 的返回位置。

参数可以为 NULL
如果返回位置不是 NULL,则必须将其初始化为 NULL GError*
如果未发生错误,则函数将把该参数初始化为 NULL
如果出错,则该参数将设置为新分配的 GError;调用方将拥有数据的所有权,并负责释放数据。

返回值

类型: gboolean

成功时为 TRUE,发生错误时为 FALSE