since: 2.36

Declaration [src]

g_close (
  gint fd,
  GError** error

Description [src]

This wraps the close() call. In case of error, %errno will be preserved, but the error will also be stored as a GError in error. In case of success, %errno is undefined.

Besides using GError, 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 GSpawnChildSetupFunc under those conditions. See signal(7) and signal-safety(7) for more details.

Available since: 2.36



Type: gint

A file descriptor.


Type: GError **

The return location for a recoverable error.

The argument can be NULL.
If the return location is not NULL, then you must initialize it to a NULL GError*.
The argument will left initialized to NULL by the function if there are no errors.
In case of error, the argument will be set to a newly allocated GError; the caller will take ownership of the data, and be responsible for freeing it.

Return value

Type: gboolean

TRUE on success, FALSE if there was an error.