### Function

# GLib remove

since: 2.6

#### Declaration

    int
    g_remove (
      const gchar* filename
    )

#### Description

A wrapper for the POSIX `remove()` function. The `remove()` function deletes a name from the filesystem.

See your C library manual for more details about how `remove()` works on your system. On Unix, `remove()` removes also directories, as it calls `unlink()` for files and `rmdir()` for directories. On Windows, although `remove()` in the C library only works for files, this function tries first `remove()` and then if that fails rmdir(), and thus works for both files and directories. Note however, that on Windows, it is in general not possible to remove a file that is open to some process, or mapped into memory.

If this function fails on Windows you can’t infer too much from the errno value. `rmdir()` is tried regardless of what caused `remove()` to fail. Any errno value set by `remove()` will be overwritten by that set by rmdir().

Available since: 2.6

#### Parameters

`filename`

  Type: `const gchar*`

  A pathname in the GLib file name encoding (UTF-8 on Windows).

  The data is owned by the caller of the function.
  The value is a platform-native string, using the preferred OS encoding on Unix and UTF-8 on Windows.

#### Return value

Type: `int`

0 if the file was successfully removed, -1 if an error occurred.