getresuid(2)

getresuid2

Get real, effective, and saved user/group ids

Usage

#define _GNU_SOURCE         /* See feature_test_macros(7) */
#include <unistd.h>

int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);

Library

Standard C library (libc, -lc)

Overview

getresuid() returns the real UID, the effective UID, and the saved set-user-ID of the calling process, in the arguments ruid, euid, and suid, respectively. getresgid() performs the analogous task for the process's group IDs.

Return value

On success, zero is returned. On error, -1 is returned, and errno is set to indicate the error.

Errors

EFAULT

One of the arguments specified an address outside the calling program's address space.

Releases

16 releases since Debian 2.0 (Hamm); the text changed 13 times.

  1. 2.0–2.2
  2. 3.0
  3. 3.1
  4. 4.0
  5. 5.0
  6. 6.0
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. Arch

Standards

POSIX.1-2024 XSI.

History

Linux 2.1.44, glibc 2.3.2, POSIX.1-2024 XSI.

The original Linux getresuid() and getresgid() system calls supported only 16-bit user and group IDs. Subsequently, Linux 2.4 added getresuid32() and getresgid32(), supporting 32-bit IDs. The glibc getresuid() and getresgid() wrapper functions transparently deal with the variations across kernel versions.

From man-pages 6.19-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.