svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
getpeerucred(3c)
getpeerucred(3C) Standard C Library Functions getpeerucred(3C)
NAME
getpeerucred, getpeereid - get connected socket or stream peer's cre‐
dentials
SYNOPSIS
#include <ucred.h>
int getpeerucred(int fd, ucred_t **ucred);
#include <sys/types.h>
#include <sys/socket.h>
int getpeereid(int fd, uid_t *euidp, gid_t *egidp);
DESCRIPTION
The getpeerucred() and getpeereid() functions return the credentials of
the peer endpoint of a connection-oriented socket (SOCK_STREAM) or
stream fd at the time the endpoint was created or the connection was
established. A process that initiates a connection retrieves the cre‐
dentials of its peer at the time the peer's endpoint was created. A
process that listens for connections retrieves the credentials of the
peer at the time the peer initiated the connection.
When successful, getpeerucred() stores the pointer to a freshly allo‐
cated ucred_t in the memory location pointed to by the ucred argument
if that memory location contains the null pointer. If the memory loca‐
tion is non-null, it will reuse the existing ucred_t.
When ucred is no longer needed, a credential allocated by getpeeru‐
cred() should be freed with ucred_free(3C).
It is possible that all fields of the ucred_t are not available to all
peer endpoints and all callers.
When successful, getpeereid() stores the effective uid in the memory
location pointed to by euidp and the effective gid in the memory loca‐
tion pointed to by egidp.
RETURN VALUES
Upon successful completion, getpeerucred() and getpeereid() return 0.
Otherwise, they return −1 and errno is set to indicate the error.
ERRORS
The getpeerucred() function will fail if:
EAGAIN There is not enough memory available to allocate sufficient
memory to hold the user credential. The application can try
again later.
EBADF The fd argument is not a valid file descriptor.
EFAULT The pointer location pointed to by the ucred_t ** argument
points to an invalid, non-null address.
EINVAL The socket is connected but the peer credentials are un‐
known.
ENOMEM The physical limits of the system are exceeded by the mem‐
ory allocation needed to hold the user credential.
ENOTCONN The socket or stream is not connected or the stream's peer
is unknown.
ENOTSUP This operation is not supported on this file descriptor.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelMT-Safe
SEE ALSO
door_ucred(3C), ucred_get(3C), connld(4M), attributes(7)
NOTES
The system currently supports both sides of connection endpoints for
local AF_UNIX, AF_INET, and AF_INET6 sockets, /dev/tcp, /dev/ticots,
and /dev/ticotsord XTI/TLI connections, and pipe file descriptors sent
using I_SENDFD as a result of the open of a named pipe with the
"connld" module pushed.
HISTORY
The getpeerucred() function was added to Solaris in Solaris 10.
The getpeereid() function was added to Oracle Solaris in Solaris
11.4.81.
Oracle Solaris 11.4 10 Feb 2025 getpeerucred(3C)