This wraps the close call.
In case of error, errno will be preserved, but the error will also be stored as a Error in throws. In case of success, errno is undefined.
Besides using 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) throws is
null and fd
is a valid open file descriptor. This makes it safe to call from a signal
handler or a SpawnChildSetupFunc under those conditions. See [`signal(7)`](
man:signal(7)) and [`signal-safety(7)`](man:signal-safety(7)) for more details.
fd |
A file descriptor |
true on success, false if there was an error. |