### Function

# GLib close

since: 2.36

#### Declaration

    gboolean
    g_close (
      gint fd,
      GError** error
    )

#### Description

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

#### Parameters

`fd`

  Type: `gint`

  A file descriptor.

`error`

  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 be 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.