int accept4(int sockfd, struct sockaddr *addr,
socklen_t *addrlen, int flags);
##socket
int socket(int domain, int type, int protocol);
Since Linux 2.6.27, the type argument serves a second purpose: in
addition to specifying a socket type, it may include the bitwise OR
of any of the following values, to modify the behavior of socket():
SOCK_NONBLOCK Set the O_NONBLOCK file status flag on the new open
file description. Using this flag saves extra calls
to fcntl(2) to achieve the same result.
SOCK_CLOEXEC Set the close-on-exec (FD_CLOEXEC) flag on the new
file descriptor. See the description of the
O_CLOEXEC flag in open(2) for reasons why this may be
useful.
int open(const char *pathname, int flags, mode_t mode);
O_CLOEXEC (since Linux 2.6.23)
Enable the close-on-exec flag for the new file descriptor.
Specifying this flag permits a program to avoid additional
fcntl(2) F_SETFD operations to set the FD_CLOEXEC flag.
O_CLOEXEC
Set the close-on-exec (FD_CLOEXEC) flag on the two new file
descriptors. See the description of the same flag in open(2)
for reasons why this may be useful.
O_NONBLOCK
Set the O_NONBLOCK file status flag on the two new open file
descriptions. Using this flag saves extra calls to fcntl(2)
to achieve the same result.
##socketpair
int socketpair(int domain, int type, int protocol, int sv[2]);
Since Linux 2.6.27, socketpair() supports the SOCK_NONBLOCK and
SOCK_CLOEXEC flags described in socket(2).
##pthread_tryjoin_np
int pthread_tryjoin_np(pthread_t thread, void **retval);
int pthread_timedjoin_np(pthread_t thread, void **retval,
const struct timespec *abstime);
The pthread_tryjoin_np() function performs a nonblocking join with
the thread thread, returning the exit status of the thread in
*retval. If thread has not yet terminated, then instead of blocking,
as is done by pthread_join(3), the call returns an error.
The pthread_timedjoin_np() function performs a join-with-timeout. If
thread has not yet terminated, then the call blocks until a maximum
time, specified in abstime. If the timeout expires before thread
terminates, the call returns an error. The abstime argument is a
structure of the following form, specifying an absolute time measured
since the Epoch (see time(2)):
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};