| EFAULT | One of the arguments specified an address outside the calling program's address space. |
NAME
getresuid, getresgid - get real, effective, and saved user/group IDs
LIBRARY
Standard C library (libc, -lc)
SYNOPSIS
#define _GNU_SOURCE\n /* See feature_test_macros(7) */
\n#include <unistd.h>int getresuid(uid_t *\nruid\n, uid_t *\neuid\n, uid_t *\nsuid\n);\n
\nint getresgid(gid_t *\nrgid\n, gid_t *\negid\n, gid_t *\nsgid\n);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
None. These calls also appear on HP-UX and some of the BSDs.
HISTORY
Linux 2.1.44, glibc 2.3.2.
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), setresuid(2), setreuid(2), setuid(2), credentials(7)