---
name: "getresuid32"
section: "2"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/getresuid"
---

# getresuid32(2)

get real, effective, and saved user/group IDs

Part of [getresuid(2)](/getresuid/2.md).

## NAME

getresuid, getresgid - get real, effective, and saved user/group IDs

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#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***);**

## DESCRIPTION

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

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

## SEE ALSO

[**getuid**(2)](/getuid/2.md), [**setresuid**(2)](/setresuid/2.md), [**setreuid**(2)](/setreuid/2.md), [**setuid**(2)](/setuid/2.md), [**credentials**(7)](/credentials/7.md)
