int setuid (
uid_t user_id );
Application developers may want to specify an #include statement for <sys/types.h> before the one for <unistd.h> if programs are being developed for multiple platforms. The additional #include statement is not required on Tru64 UNIX systems or by ISO or X/Open standards, but may be required on other vendors' systems that conform to these standards.
Interfaces documented on this reference page conform to industry standards as follows:
setuid(): XPG4, XPG4-UNIX
Refer to the standards(5) reference page for more information about industry standards and associated tags.
Specifies the new user ID.
The setuid() function sets the real user ID, effective user ID, and the saved set user ID to the user_id parameter.
To change the real user ID, the effective user ID, and the saved set user ID, the calling process must have superuser privilege. If the process does not have appropriate privilege, but the user_id parameter is equal to the real user ID or the saved set user ID, the setuid() function sets the effective user ID to the user_id parameter. The real user ID and saved set user ID remain unchanged.
Upon successful completion, the setuid() function returns a value of 0 (zero). Otherwise, the function returns a value of -1 and sets errno to indicate the error.
The setuid() function sets errno to the specified values for the following conditions: [Digital] The process is attempting an operation that would exceeds a system limit, such as the number of tasks or threads allowed for a user ID. The value of the user_id parameter is invalid. The process does not have superuser privileges, and the user_id parameter does not match the real user ID or the saved set user ID.
Functions: exec(2), getuid(2), setgid(2), setreuid(2)
Standards: standards(5) delim off