### Method

# Gio SettingsSchemaSource list_schemas

since: 2.40

#### Declaration

    void
    g_settings_schema_source_list_schemas (
      GSettingsSchemaSource* source,
      gboolean recursive,
      gchar*** non_relocatable,
      gchar*** relocatable
    )

#### Description

Lists the schemas in a given source.

If `recursive` is `TRUE` then include parent sources. If `FALSE` then only include the schemas from one source (ie: one directory). You probably want `TRUE`.

Non-relocatable schemas are those for which you can call g_settings_new(). Relocatable schemas are those for which you must use g_settings_new_with_path().

Do not call this function from normal programs. This is designed for use by database editors, commandline tools, etc.

Available since: 2.40

#### Parameters

`recursive`

  Type: `gboolean`

  If we should recurse.

`non_relocatable`

  Type: An array of `gchar**`

  The list of non-relocatable schemas, in no defined order.

  The argument will be set by the function.
  The array must be `NULL`-terminated.
  The caller of the method takes ownership of the data, and is responsible for freeing it.
  Each element is a NUL terminated UTF-8 string.

`relocatable`

  Type: An array of `gchar**`

  The list of relocatable schemas, in no defined order.

  The argument will be set by the function.
  The array must be `NULL`-terminated.
  The caller of the method takes ownership of the data, and is responsible for freeing it.
  Each element is a NUL terminated UTF-8 string.