函数
GLibclose
自 2.36 起
声明 [源代码]
gboolean
g_close (
gint fd,
GError** error
)
描述 [源代码]
这是对 close()
调用的包装。如果出错,error
中会保存 %errno,但错误也会以 GError
形式存储。如果成功,则 %errno 是未定义的。
除了使用 GError
之外,还有另一个更重要的原因让您优先选择此函数而不是系统提供的调用。在 Unix 上,它将尝试正确处理 EINTR
,后者具有特定于平台的语义。
使用无效的文件描述符调用此函数是一个错误。
自 GLib 2.76 起在 POSIX 平台上,如果(且仅当)error
为 NULL
且 fd
是有效的 open 文件描述符时,此函数就是异步信号安全的。这样,在这些条件下,可以安全地从信号处理程序或 GSpawnChildSetupFunc
调用。有关详细信息,请参见 signal(7)
和 signal-safety(7)
。
自 2.36 起可用