0                  Successful completion.
    -1                 Indicates an error. The function sets errno to
                       one of the following values:
                       o  EINVAL - The value of the ruid or euid
                          argument is invalid or out of range.
                       o  EPERM - The current process does not have
                          the IMPERSONATE privilege, and either an
                          attempt was made to change the effective
                          user ID to a value other than the real user
                          ID or the saved set-user-ID, or an attempt
                          was made to change the real user ID to a
                          value not permitted by the implementation.