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

# geteuid32(2)

get user identity

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

## NAME

getuid, geteuid - get user identity

## LIBRARY

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

## SYNOPSIS

```
#include <unistd.h>
```

**uid\_t getuid(void);** **uid\_t geteuid(void);**

## DESCRIPTION

**getuid**() returns the real user ID of the calling process.

**geteuid**() returns the effective user ID of the calling process.

## ERRORS

These functions are always successful and never modify *errno*.

## STANDARDS

POSIX.1-2024.

## HISTORY

4\.3BSD, POSIX.1-1988.

In UNIX V6 the **getuid**() call returned *(euid \<\< 8) + uid*. UNIX V7 introduced separate calls **getuid**() and **geteuid**().

The original Linux **getuid**() and **geteuid**() system calls supported only 16-bit user IDs. Subsequently, Linux 2.4 added **getuid32**() and **geteuid32**(), supporting 32-bit IDs. The glibc **getuid**() and **geteuid**() wrapper functions transparently deal with the variations across kernel versions.

On Alpha, instead of a pair of **getuid**() and **geteuid**() system calls, a single **getxuid**() system call is provided, which returns a pair of real and effective UIDs. The glibc **getuid**() and **geteuid**() wrapper functions transparently deal with this. See [**syscall**(2)](/syscall/2.md) for details regarding register mapping.

## SEE ALSO

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