Mac Developer Library Developer


This manual page is part of Xcode Tools version 5.0

To obtain these tools:

If you are running a version of Xcode Tools other than 5.0, view the documentation locally:

  • In Xcode

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • To learn how the manual is organized or to learn about command syntax, read the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Developer Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.

SETREUID(2)                 BSD System Calls Manual                SETREUID(2)

     setreuid -- set real and effective user IDs

     Standard C Library (libc, -lc)

     #include <unistd.h>

     setreuid(uid_t ruid, uid_t euid);

     The real and effective user IDs of the current process are set according to the arguments.  If ruid or
     euid is -1, the current uid is filled in by the system.  Unprivileged users may change the real user ID
     to the effective user ID and vice-versa; only the super-user may make other changes.

     The setreuid() function has been used to swap the real and effective user IDs in set-user-ID programs
     to temporarily relinquish the set-user-ID value.  This purpose is now better served by the use of the
     seteuid() function (see setuid(2)).

     When setting the real and effective user IDs to the same value, the standard setuid() function is pre-ferred. preferred.

     The setreuid() function returns the value 0 if successful; otherwise the value -1 is returned and the
     global variable errno is set to indicate the error.

     [EPERM]            The current process is not the super-user and a change other than changing the
                        effective user-id to the real user-id was specified.

     getuid(2), issetugid(2), seteuid(2), setuid(2)

     The setreuid() system call appeared in 4.2BSD.

BSD                            February 8, 2001                            BSD

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.