since: 2.26


g_socket_get_credentials (
  GSocket* socket
  GError** error


Returns the credentials of the foreign process connected to this socket, if any (e.g. it is only supported for G_SOCKET_FAMILY_UNIX sockets).

If this operation isn’t supported on the OS, the method fails with the G_IO_ERROR_NOT_SUPPORTED error. On Linux this is implemented by reading the SO_PEERCRED option on the underlying socket.

This method can be expected to be available on the following platforms:

  • Linux since GLib 2.26
  • OpenBSD since GLib 2.30
  • Solaris, Illumos and OpenSolaris since GLib 2.40
  • NetBSD since GLib 2.42
  • macOS, tvOS, iOS since GLib 2.66

Other ways to obtain credentials from a foreign peer includes the GUnixCredentialsMessage type and g_unix_connection_send_credentials() / g_unix_connection_receive_credentials() functions.

Available since: 2.26

Return value

Type: GCredentials

NULL if error is set, otherwise a GCredentials object that must be freed with g_object_unref().

The caller of the method takes ownership of the data, and is responsible for freeing it.