This wraps the close() call. In case of error, %errno will be
preserved, but the error will also be stored as a GLib.Error in error.
In case of success, %errno is undefined.
Besides using GLib.Error, there is another major reason to prefer this
function over the call provided by the system; on Unix, it will
attempt to correctly handle EINTR, which has platform-specific
semantics.
It is a bug to call this function with an invalid file descriptor.
On POSIX platforms since GLib 2.76, this function is async-signal safe
if (and only if) error is null and fd is a valid open file descriptor.
This makes it safe to call from a signal handler or a GLib.SpawnChildSetupFunc
under those conditions.
See signal(7) and
signal-safety(7) for more details.
This wraps the
close()call. In case of error, %errno will be preserved, but the error will also be stored as a GLib.Error inerror. In case of success, %errno is undefined.Besides using GLib.Error, there is another major reason to prefer this function over the call provided by the system; on Unix, it will attempt to correctly handle
EINTR, which has platform-specific semantics.It is a bug to call this function with an invalid file descriptor.
On POSIX platforms since GLib 2.76, this function is async-signal safe if (and only if)
errorisnullandfdis a valid open file descriptor. This makes it safe to call from a signal handler or a GLib.SpawnChildSetupFunc under those conditions. Seesignal(7)andsignal-safety(7)for more details.