FD_CLR — clear fd_set bit       See AUP2, Sec. 4.2.3


#include <sys/select.h>

void FD_CLR(
    int fd,                             /* file descriptor to clear */
    fd_set *fdset                       /* fd_set */
);

Return: None

FD_ISSET — test fd_set bit       See AUP2, Sec. 4.2.3


#include <sys/select.h>

int FD_ISSET(
    int fd,                             /* file descriptor to test */
    fd_set *fdset                       /* fd_set */
);

Return: 1 if set or 0 if clear (no error return)

FD_SET — set fd_set bit       See AUP2, Sec. 4.2.3


#include <sys/select.h>

void FD_SET(
    int fd,                             /* file descriptor to set */
    fd_set *fdset                       /* fd_set */
);

Return: None

FD_ZERO — clear entire fd_set       See AUP2, Sec. 4.2.3


#include <sys/select.h>

void FD_ZERO(
    fd_set *fdset                       /* fd_set to clear */
);

Return: None

_Exit — terminate process without clean-up       See AUP2, Sec. 5.7


#include <stdlib.h>

void _Exit(
    int status                          /* exit status */
);

Return: Does not return

_exit — terminate process without clean-up       See AUP2, Sec. 5.7


#include <unistd.h>

void _exit(
    int status                          /* exit status */
);

Return: Does not return

_longjmp — jump to jump point without restoring signal mask       See AUP2, Sec. 9.6


#include <setjmp.h>

void _longjmp(
    jmp_buf loc_info,                   /* saved location information */
    int val                             /* value for setjmp to return */
);

Return: None

_setjmp — set jump point       See AUP2, Sec. 9.6


#include <setjmp.h>

int _setjmp(
    jmp_buf loc_info                    /* saved location information */
);

Return: 0 if called directly, non-zero if from longjmp (no error return)

abort — generate SIGABRT       See AUP2, Sec. 9.1.9


#include <stdlib.h>

void abort(void);

Return: Does not return

accept — accept new connection on socket and create new socket       See AUP2, Sec. 8.1.2


#include <sys/socket.h>

int accept(
    int socket_fd,                      /* socket file descriptor */
    struct sockaddr *sa,                /* socket address or NULL */
    socklen_t *sa_len                   /* address length */
);

Return: file descriptor or -1 on error (sets errno)

access — determine accessibility of file       See AUP2, Sec. 3.8.1


#include <unistd.h>

int access(
    const char *path,                   /* pathname */
    int what                            /* permission to be tested */
);
R_OK                                    /* read permission */
W_OK                                    /* write permission */
X_OK                                    /* execute (search) permission */
F_OK                                    /* test for existence */

Return: 0 if allowed or -1 if not or on error (sets errno)

aio_cancel — cancel asynchronous I/O request       See AUP2, Sec. 3.9.5


#include <aio.h>

int aio_cancel(
    int fd,                             /* file descriptor */
    struct aiocb *aiocbp                /* control block */
);

Return: result code or -1 on error (sets errno)

aio_error — retrieve error status for asynchronous I/O operation       See AUP2, Sec. 3.9.4


#include <aio.h>

int aio_error(
    const struct aiocb *aiocbp          /* control block */
);

Return: 0, errno value, or EINPROGRESS (does not set errno)

aio_fsync — initiate buffer-cache flushing for one file       See AUP2, Sec. 3.9.6


#include <aio.h>

int aio_fsync(
    int op,                             /* O_SYNC or O_DSYNC */
    struct aiocb *aiocbp                /* control block */
);

Return: 0 on success or -1 on error (sets errno)

aio_read — asynchronous read from file       See AUP2, Sec. 3.9.3


#include <aio.h>

int aio_read(
    struct aiocb *aiocbp                /* control block */
);

Return: 0 on success or -1 on error (sets errno)

aio_return — retrieve return status of asynchronous I/O operation       See AUP2, Sec. 3.9.4


#include <aio.h>

ssize_t aio_return(
    struct aiocb *aiocbp                /* control block */
);

Return: operation return value or -1 on error (sets errno)

aio_suspend — wait for asynchronous I/O request       See AUP2, Sec. 3.9.7


#include <aio.h>

int aio_suspend(
    const struct aiocb *const list[],   /* array of control blocks */
    int cbcnt,                          /* number of elements in array */
    const struct timespec *timeout      /* max time to wait */
);

Return: 0 on success or -1 on error (sets errno)

aio_write — asynchronous write to file       See AUP2, Sec. 3.9.3


#include <aio.h>

int aio_write(
    struct aiocb *aiocbp                /* control block */
);

Return: 0 on success or -1 on error (sets errno)

alarm — schedule an alarm signal       See AUP2, Sec. 9.7.1


#include <unistd.h>

unsigned alarm(
    unsigned secs                       /* seconds until signal */
);

Return: seconds left on previous alarm or zero if none (no error return)

asctime — convert broken-down time to local-time string       See AUP2, Sec. 1.7.1


#include <time.h>

char *asctime(
    const struct tm * tmbuf             /* broken-down time */
);

Return: string or NULL on error (errno not set)

atexit — register function to be called when process exits       See AUP2, Sec. 1.3.4


#include <stdlib.h>

int atexit(
    void (*fcn)(void)                   /* function to be called */
);

Return: 0 on success, non-zero on error (errno not set)

bind — bind name to socket       See AUP2, Sec. 8.1.2


#include <sys/socket.h>

int bind(
    int socket_fd,                      /* socket file descriptor */
    const struct sockaddr *sa,          /* socket address */
    socklen_t sa_len                    /* address length */
);

Return: 0 on success or -1 on error (sets errno)

cfgetispeed — get input speed from termios structure       See AUP2, Sec. 4.5.3


#include <termios.h>

speed_t cfgetispeed(
    const struct termios *tp            /* attributes */
);

Return: speed (no error return)

cfgetospeed — get output speed from termios structure       See AUP2, Sec. 4.5.3


#include <termios.h>

speed_t cfgetospeed(
    const struct termios *tp            /* attributes */
);

Return: speed (no error return)

cfsetispeed — set input speed in termios structure       See AUP2, Sec. 4.5.3


#include <termios.h>

int cfsetispeed(
    struct termios *tp,                 /* attributes */
    speed_t speed                       /* speed */
);

Return: 0 on success or -1 on error (may set errno)

cfsetospeed — set output speed in termios structure       See AUP2, Sec. 4.5.3


#include <termios.h>

int cfsetospeed(
    struct termios *tp,                 /* attributes */
    speed_t speed                       /* speed */
);

Return: 0 on success or -1 on error (may set errno)

chdir — change current directory by path       See AUP2, Sec. 3.6.2


#include <unistd.h>

int chdir(
    const char *path                    /* pathname */
);

Return: 0 on success or -1 on error (sets errno)

chmod — change mode of file by path       See AUP2, Sec. 3.7.1


#include <sys/stat.h>

int chmod(
    const char *path,                   /* pathname */
    mode_t mode                         /* new mode */
);

Return: 0 on success or -1 on error (sets errno)

chown — change owner and group of file by path       See AUP2, Sec. 3.7.2


#include <unistd.h>

int chown(
    const char *path,                   /* pathname */
    uid_t uid,                          /* new user ID */
    gid_t gid                           /* new group ID */
);

Return: 0 on success or -1 on error (sets errno)

chroot — change root directory       See AUP2, Sec. 5.14


#include <unistd.h>

int chroot(
    const char *path                    /* path name */
);

Return: 0 on success or -1 on error (sets errno)

clock — get execution time       See AUP2, Sec. 1.7.2


#include <time.h>

clock_t clock(void);

Return: time in CLOCKS_PER_SEC or -1 on error (errno not set)

clock_getcpuclockid — get process CPU-time clock       See AUP2, Sec. 9.7.5


#include <time.h>

int clock_getcpuclockid(
    pid_t pid,                          /* process ID */
    clockid_t *clock_id                 /* returned clock ID */
);

Return: 0 on success or error number on error

clock_getres — get clock resolution       See AUP2, Sec. 9.7.5


#include <time.h>

int clock_getres(
    clockid_t clock_id,                 /* clock ID */
    struct timespec *res                /* resolution */
);

Return: 0 on success or -1 on error (sets errno)

clock_gettime — get time from clock       See AUP2, Sec. 9.7.5


#include <time.h>

int clock_gettime(
    clockid_t clock_id,                 /* clock ID (CLOCK_REALTIME, etc.) */
    struct timespec *tp                 /* time */
);

Return: 0 on success or -1 on error (sets errno)

clock_nanosleep — suspend execution for nanoseconds or until signal       See AUP2, Sec. 9.7.5


#include <time.h>

int clock_nanosleep(
    clockid_t clock_id,                 /* clock ID */
    int flags,                          /* TIMER_ABSTIME or zero */
    const struct timespec *nsecs,       /* nanoseconds to sleep */
    struct timespec *remain             /* remaining time */
);

Return: 0 on success or error number on error

clock_settime — set clock       See AUP2, Sec. 9.7.5


#include <time.h>

int clock_settime(
    clockid_t clock_id,                 /* clock ID */
    const struct timespec *tp           /* time */
);

Return: 0 on success or -1 on error (sets errno)

close — close file descriptor       See AUP2, Sec. 2.11


#include <unistd.h>

int close(
    int fd                              /* file descriptor */
);

Return: 0 on success or -1 on error (sets errno)

closedir — close directory       See AUP2, Sec. 3.6.1


#include <dirent.h>

int closedir(
    DIR *dirp                           /* DIR pointer from opendir */
);

Return: 0 on success or -1 on error (sets errno)

confstr — get configuration string       See AUP2, Sec. 1.5.7


#include <unistd.h>

size_t confstr(
    int name,                           /* option or limit name */
    char *buf,                          /* returned string value */
    size_t len                          /* size of buf */
);

Return: size of value or 0 on error (sets errno on error)

connect — connect socket       See AUP2, Sec. 8.1.2


#include <sys/socket.h>

int connect(
    int socket_fd,                      /* socket file descriptor */
    const struct sockaddr *sa,          /* socket address */
    socklen_t sa_len                    /* address length */
);

Return: 0 on success or -1 on error (sets errno)

creat — create or truncate a file for writing       See AUP2, Sec. 2.4.2


#include <sys/stat.h>
#include <fcntl.h>

int creat(
    const char *path,                   /* pathname */
    mode_t perms                        /* permissions */
);

Return: file descriptor or -1 on error (sets errno)

ctermid — get pathname for controlling terminal       See AUP2, Sec. 4.7


#include <stdio.h>

char *ctermid(
    char *buf                           /* buffer of size L_ctermid or NULL */
);

Return: pathname or empty string on error (errno not set)

ctime — convert time_t to local-time string       See AUP2, Sec. 1.7.1


#include <time.h>

char *ctime(
    const time_t *t                     /* time */
);

Return: string or NULL on error (errno not set)

difftime — subtract two time_t values       See AUP2, Sec. 1.7.1


#include <time.h>

double difftime(
    time_t time1,                       /* time */
    time_t time0                        /* time */
);

Return: time1 - time0 in seconds (no error return)

dup — duplicate file descriptor       See AUP2, Sec. 6.3


#include <unistd.h>

int dup(
    int fd                              /* file descriptor to duplicate */
);

Return: new file descriptor or -1 on error (sets errno)

dup2 — duplicate file descriptor       See AUP2, Sec. 6.3


#include <unistd.h>

int dup2(
    int fd,                             /* file descriptor to duplicate */
    int fd2                             /* file descriptor to use */
);

Return: new file descriptor or -1 on error (sets errno)

endhostent — end host-database scan       See AUP2, Sec. 8.8.1


#include <netdb.h>

void endhostent(void);

Return: None

endnetent — end network-database scan       See AUP2, Sec. 8.8.2


#include <netdb.h>

void endnetent(void);

Return: None

endprotoent — end protocol-database scan       See AUP2, Sec. 8.8.3


#include <netdb.h>

void endprotoent(void);

Return: None

endservent — end service-database scan       See AUP2, Sec. 8.8.4


#include <netdb.h>

void endservent(void);

Return: None

execl — execute file with argument list       See AUP2, Sec. 5.3


#include <unistd.h>

int execl(
    const char *path,                   /* program pathname */
    const char *arg0,                   /* first arg (file name) */
    const char *arg1,                   /* second arg */
    ...,                                /* remaining args */
    NULL                                /* arg list terminator */
);

Return: -1 on error (sets errno)

execle — execute file with argument list and environment       See AUP2, Sec. 5.3


#include <unistd.h>

int execle(
    const char *path,                   /* program pathname */
    const char *arg0,                   /* first arg (file name) */
    const char *arg1,                   /* second arg */
    ...,                                /* remaining args */
    NULL                                /* arg list terminator */
    char *const envv[]*/                /* environment vector */
);

Return: -1 on error (sets errno)

execlp — execute file with argument list and PATH search       See AUP2, Sec. 5.3


#include <unistd.h>

int execlp(
    const char *file,                   /* program file name */
    const char *arg0,                   /* first arg (file name) */
    const char *arg1,                   /* second arg */
    ...,                                /* remaining args */
    NULL                                /* arg list terminator */
);

Return: -1 on error (sets errno)

execv — execute file with argument vector       See AUP2, Sec. 5.3


#include <unistd.h>

int execv(
    const char *path,                   /* program pathname */
    char *const argv[]                  /* argument vector */
);

Return: -1 on error (sets errno)

execve — execute file with argument vector and environment       See AUP2, Sec. 5.3


#include <unistd.h>

int execve(
    const char *path,                   /* program pathname */
    char *const argv[],                 /* argument vector */
    char *const envv[]                  /* environment vector */
);

Return: -1 on error (sets errno)

execvp — execute file with argument vector and PATH search       See AUP2, Sec. 5.3


#include <unistd.h>

int execvp(
    const char *file,                   /* program file name */
    char *const argv[]                  /* argument vector */
);

Return: -1 on error (sets errno)

exit — terminate process with clean-up       See AUP2, Sec. 5.7


#include <stdlib.h>

void exit(
    int status                          /* exit status */
);

Return: Does not return

fchdir — change current directory by file descriptor       See AUP2, Sec. 3.6.2


#include <unistd.h>

int fchdir(
    int fd                              /* file descriptor */
);

Return: 0 on success or -1 on error (sets errno)

fchmod — change mode of file by file descriptor       See AUP2, Sec. 3.7.1


#include <sys/stat.h>

int fchmod(
    int fd,                             /* file descriptor */
    mode_t mode                         /* new mode */
);

Return: 0 on success or -1 on error (sets errno)

fchown — change owner and group of file by file descriptor       See AUP2, Sec. 3.7.2


#include <unistd.h>

int fchown(
    int fd,                             /* file descriptor */
    uid_t uid,                          /* new user ID */
    gid_t gid                           /* new group ID */
);

Return: 0 on success or -1 on error (sets errno)

fcntl — control open file       See AUP2, Sec. 3.8.3


#include <unistd.h>
#include <fcntl.h>

int fcntl(
    int fd,                             /* file descriptor */
    int op,                             /* operation */
    ...                                 /* optional argument depending on op */
);

Return: result depending on op or -1 on error (sets errno)

fdatasync — force buffer-cache flushing for one file’s data       See AUP2, Sec. 2.16.2


#include <unistd.h>

int fdatasync(
    int fd                              /* file descriptor */
);

Return: 0 or -1 on error (sets errno)

fork — create new process       See AUP2, Sec. 5.5


#include <unistd.h>

pid_t fork(void);

Return: child’s process-ID and 0 on success or -1 on error (sets errno)

fpathconf — get system option or limit by file descriptor       See AUP2, Sec. 1.5.6


#include <unistd.h>

long fpathconf(
    int fd,                             /* file descriptor */
    int name                            /* option or limit name */
);

Return: option/limit value or -1 (sets errno on error)

freeaddrinfo — free socket-address information       See AUP2, Sec. 8.2.6


#include <sys/socket.h>
#include <netdb.h>

void freeaddrinfo(
    struct addrinfo *infop              /* list to free */
);

Return: None

fstat — get file info by file descriptor       See AUP2, Sec. 3.5.1


#include <sys/stat.h>

int fstat(
    int fd,                             /* file descriptor */
    struct stat *buf                    /* returned information */
);

Return: 0 on success or -1 on error (sets errno)

fstatvfs — get file system information by file descriptor       See AUP2, Sec. 3.2.3


#include <sys/statvfs.h>

int fstatvfs(
    int fd,                             /* file descriptor */
    struct statvfs *buf                 /* returned info */
);

Return: 0 on success or -1 on error (sets errno)

fsync — schedule or force buffer-cache flushing for one file       See AUP2, Sec. 2.16.2


#include <unistd.h>

int fsync(
    int fd                              /* file descriptor */
);

Return: 0 on success or -1 on error (sets errno)

ftok — generate System V IPC key       See AUP2, Sec. 7.4.2


#include <sys/ipc.h>

key_t ftok(
    const char *path,                   /* pathname of existing file */
    int id                              /* desired key number */
);

Return: key on success or -1 on error (sets errno)

ftruncate — truncate or stretch file by file descriptor       See AUP2, Sec. 2.17


#include <unistd.h>

int ftruncate(
    int fd,                             /* file descriptor */
    off_t length                        /* new length */
);

Return: 0 on success or -1 on error (sets errno)

gai_strerror — get error-code description       See AUP2, Sec. 8.2.6


#include <netdb.h>

const char *gai_strerror(
    int code                            /* error code */
);

Return: string (no error return)

getaddrinfo — get socket-address information       See AUP2, Sec. 8.2.6


#include <sys/socket.h>
#include <netdb.h>

int getaddrinfo(
    const char *nodename,               /* node name */
    const char *servname,               /* service name */
    const struct addrinfo *hint,        /* hint */
    struct addrinfo **infop             /* returned info as linked list */
);

Return: 0 on success or error number on error (errno not set)

getcwd — get current directory pathname       See AUP2, Sec. 3.4.2


#include <unistd.h>

char *getcwd(
    char *buf,                          /* returned pathname */
    size_t bufsize                      /* size of buf */
);

Return: pathname or NULL on error (sets errno)

getdate — convert string to broken-down time with rules       See AUP2, Sec. 1.7.1


#include <time.h>

struct tm *getdate(
    const char *s                       /* string to convert */
);

Return: broken-down time or NULL on error (sets getdate_err)

getegid — get effective group ID       See AUP2, Sec. 5.11


#include <unistd.h>

gid_t getegid(void);

Return: group ID (no error return)

getenv — get value of environment variable       See AUP2, Sec. 5.2


#include <stdlib.h>

char *getenv(
    const char *var                     /* variable to find */
);

Return: value or NULL if not found (errno not set)

geteuid — get effective user ID       See AUP2, Sec. 5.11


#include <unistd.h>

uid_t geteuid(void);

Return: user ID (no error return)

getgid — get real group ID       See AUP2, Sec. 5.11


#include <unistd.h>

gid_t getgid(void);

Return: group ID (no error return)

getgrgid — get group-file entry       See AUP2, Sec. 3.5.2


#include <grp.h>

struct group *getgrgid(
    gid_t gid                           /* group ID */
);

Return: pointer to structure or NULL on error (sets errno)

gethostbyaddr — lookup host by address       See AUP2, Sec. 8.8.1


#include <netdb.h>

struct hostent *gethostbyaddr(
    const void *addr,                   /* IP address */
    socklen_t len,                      /* length of address */
    int family                          /* family (called “type” in SUS) */
);

Return: pointer to hostent or NULL on error (sets h_errno)

gethostbyname — lookup host by name       See AUP2, Sec. 8.8.1


#include <netdb.h>

struct hostent *gethostbyname(
    const char *nodename,               /* node name */
);

Return: pointer to hostent or NULL on error (sets h_errno)

gethostent — get next host-database entry       See AUP2, Sec. 8.8.1


#include <netdb.h>

struct hostent *gethostent(void);

Return: next entry or NULL on end of database (errno not set)

gethostid — get identifier for local host       See AUP2, Sec. 8.8.1


#include <unistd.h>

long gethostid(void);

Return: identifier (no error return)

gethostname — get name of host       See AUP2, Sec. 8.2.7


#include <unistd.h>

int gethostname(
    char *name,                         /* returned name */
    size_t namelen                      /* size of name buffer */
);

Return: 0 on success or -1 on error (errno not set)

getitimer — get value of interval timer       See AUP2, Sec. 9.7.4


#include <sys/time.h>

int getitimer(
    int which,                          /* timer to get */
    struct itimerval *val               /* returned value */
);

Return: 0 on success or -1 on error (sets errno)

getlogin — get login name       See AUP2, Sec. 3.5.2


#include <unistd.h>

char *getlogin(void);

Return: name or NULL on error (sets errno)

getnameinfo — get name information       See AUP2, Sec. 8.8.1


#include <sys/socket.h>
#include <netdb.h>

int getnameinfo(
    const struct sockaddr *sa,          /* socket address */
    socklen_t sa_len,                   /* socket-address length */
    char *nodename,                     /* node name */
    socklen_t nodelen,                  /* node-name buffer length */
    char *servname,                     /* service name */
    socklen_t servlen,                  /* service-name buffer length */
    unsigned flags                      /* flags */
);

Return: 0 on success or error number on error

getnetbyaddr — lookup network by number       See AUP2, Sec. 8.8.2


#include <netdb.h>

struct netent *getnetbyaddr(
    uint32_t net,                       /* network number (to match n_net member) */
    int type                            /* family (to match n_addrtype member) */
);

Return: pointer to netent or NULL if not found (errno not set)

getnetbyname — lookup network by name       See AUP2, Sec. 8.8.2


#include <netdb.h>

struct netent *getnetbyname(
    const char *name                    /* network name (to match n_name member) */
);

Return: pointer to netent or NULL if not found (errno not set)

getnetent — get network-database entry       See AUP2, Sec. 8.8.2


#include <netdb.h>

struct netent *getnetent(void);

Return: pointer to netent or NULL end of database (errno not set)

getpeername — get socket address of connected socket       See AUP2, Sec. 8.9.2


#include <sys/socket.h>

int getpeername(
    int socket_fd,                      /* socket file descriptor */
    struct sockaddr *sa,                /* socket address */
    socklen_t *sa_len                   /* address length */
);

Return: 0 on success or -1 on error (sets errno)

getpgid — get process-group ID       See AUP2, Sec. 4.3.3


#include <unistd.h>

pid_t getpgid(
    pid_t pid                           /* process ID or 0 for calling process */
);

Return: process-group ID or -1 on error (sets errno)

getpid — get process ID       See AUP2, Sec. 5.13


#include <unistd.h>

pid_t getpid(void);

Return: process ID (no error return)

getppid — get parent process ID       See AUP2, Sec. 5.13


#include <unistd.h>

pid_t getppid(void);

Return: parent process ID (no error return)

getprotobyname — lookup protocol by name       See AUP2, Sec. 8.8.3


#include <netdb.h>

struct protoent *getprotobyname(
    const char *name                    /* protocol name */
);

Return: pointer to protoent or NULL if not found (errno not set)

getprotobynumber — lookup protocol by number       See AUP2, Sec. 8.8.3


#include <netdb.h>

struct protoent *getprotobynumber(
    int proto                           /* protocol number */
);

Return: pointer to protoent or NULL if not found (errno not set)

getprotoent — get protocol-database entry       See AUP2, Sec. 8.8.3


#include <netdb.h>

struct protoent *getprotoent(void);

Return: pointer to protoent or NULL end of database (errno not set)

getpwuid — get password-file entry       See AUP2, Sec. 3.5.2


#include <pwd.h>

struct passwd *getpwuid(
    uid_t uid                           /* user ID */
);

Return: pointer to structure or NULL on error (sets errno)

getrlimit — get resource limits       See AUP2, Sec. 5.16


#include <sys/resource.h>

int getrlimit(
    int resource,                       /* resource */
    struct rlimit *rlp                  /* returned limits */
);

Return: 0 on success or -1 on error (sets errno)

getrusage — get resource usage       See AUP2, Sec. 5.16


#include <sys/resource.h>

int getrusage(
    int who,                            /* RUSAGE_SELF or RUSAGE_CHILDREN */
    struct rusage *r_usage              /* returned usage information */
);

Return: 0 on success or -1 on error (sets errno)

getservbyname — lookup service by name       See AUP2, Sec. 8.8.4


#include <netdb.h>

struct servent *getservbyname(
    const char *name,                   /*  */
    const char *proto                   /*  */
);

Return: pointer to protoent or NULL if not found (errno not set)

getservbyport — lookup service by port       See AUP2, Sec. 8.8.4


#include <netdb.h>

struct servent *getservbyport(
    int port,                           /*  */
    const char *proto                   /*  */
);

Return: pointer to protoent or NULL if not found (errno not set)

getservent — get service-database entry       See AUP2, Sec. 8.8.4


#include <netdb.h>

struct servent *getservent(void);

Return: pointer to servent or NULL end of database (errno not set)

getsid — get session ID       See AUP2, Sec. 4.3.2


#include <unistd.h>

pid_t getsid(
    pid_t pid                           /* process ID or 0 for calling process */
);

Return: session ID or -1 on error (sets errno)

getsockname — get socket address       See AUP2, Sec. 8.9.2


#include <sys/socket.h>

int getsockname(
    int socket_fd,                      /* socket file descriptor */
    struct sockaddr *sa,                /* socket address */
    socklen_t *sa_len                   /* address length */
);

Return: 0 on success or -1 on error (sets errno)

getsockopt — get the socket options       See AUP2, Sec. 8.3


#include <sys/socket.h>

int getsockopt(
    int socket,                         /* socket */
    int level,                          /* level to be accessed */
    int option,                         /* option to set */
    const void *value,                  /* value to set */
    socklen_t *value_len                /* length of value */
);

Return: 0 on success or -1 on error (sets errno)

gettimeofday — get current date and time as timeval       See AUP2, Sec. 1.7.1


#include <sys/time.h>

int gettimeofday(
    struct timeval *tvalbuf,            /* returned time */
    void *dummy                         /* always NULL */
);

Return: 0 on success or -1 (maybe) on error (may set errno)

getuid — get real user ID       See AUP2, Sec. 5.11


#include <unistd.h>

uid_t getuid(void);

Return: user ID (no error return)

gmtime — convert time_t to UTC broken-down time       See AUP2, Sec. 1.7.1


#include <time.h>

struct tm *gmtime(
    const time_t *t                     /* time */
);

Return: broken-down time (no error return)

grantpt — get access to slave side of pty       See AUP2, Sec. 4.10.1


#include <stdlib.h>

int grantpt(
    int fd                              /* file descriptor */
);

Return: 0 on success or -1 on error (sets errno)

htonl — convert 32-bit value from host to network byte order       See AUP2, Sec. 8.1.4


#include <arpa/inet.h>

uint32_t htonl(
    uint32_t hostnum                    /* 32-bit number in host byte order */
);

Return: number in network byte order (no error return)

htons — convert 16-bit value from host to network byte order       See AUP2, Sec. 8.1.4


#include <arpa/inet.h>

uint16_t htons(
    uint16_t hostnum                    /* 16-bit number in host byte order */
);

Return: number in network byte order (no error return)

if_freenameindex — free array allocated by if_nameindex       See AUP2, Sec. 8.8.5


#include <net/if.h>

void if_freenameindex(
    struct if_nameindex *ptr            /* pointer to array */
);

Return: None

if_indextoname — map network interface index to name       See AUP2, Sec. 8.8.5


#include <net/if.h>

char *if_indextoname(
    unsigned ifindex,                   /* interface index */
    char *ifname                        /* interface name */
);

Return: name or NULL on error (sets errno)

if_nameindex — get all network interface names and indexes       See AUP2, Sec. 8.8.5


#include <net/if.h>

struct if_nameindex *if_nameindex(void);

Return: array or NULL on error (sets errno)

if_nametoindex — map network interface name to index       See AUP2, Sec. 8.8.5


#include <net/if.h>

unsigned if_nametoindex(
    const char *ifname                  /* interface name */
);

Return: index or 0 on error (errno not set)

inet_addr — convert dotted IPv4 address string to integer       See AUP2, Sec. 8.2.3


#include <arpa/inet.h>

in_addr_t inet_addr(
    const char *cp                      /* dotted IP address */
);

Return: IP address or (in_addr_t)-1 on error (errno not set)

inet_ntoa — convert integer IPv4 address to dotted string       See AUP2, Sec. 8.2.3


#include <arpa/inet.h>

char *inet_ntoa(
    struct in_addr in                   /* integer address */
);

Return: string (no error return)

inet_ntop — convert IPv4 or IPv6 binary addresses to string       See AUP2, Sec. 8.9.5


#include <arpa/inet.h>

const char *inet_ntop(
    int domain,                         /* AF_INET or AF_INET6 */
    const void *src,                    /* pointer to binary address (input) */
    char *dst,                          /* string (output) */
    socklen_t dst_len                   /* length of dst buffer */
);

Return: string or NULL on error (sets errno)

inet_pton — convert IPv4 or IPv6 string addresses to binary       See AUP2, Sec. 8.9.5


#include <arpa/inet.h>

int inet_pton(
    int domain,                         /* AF_INET or AF_INET6 */
    const char *src,                    /* string (input) */
    void *dst                           /* buffer for binary address (output) */
);

Return: 1 on success, 0 on invalid string, or -1 on error (sets errno)

ioctl — control a character device       See AUP2, Sec. 4.4


#include <...>

int ioctl(
    int fd,                             /* file descriptor */
    int req,                            /* request */
    ...                                 /* arguments that depend on request */
);

Return: -1 on error (sets errno); some other value on success

isatty — test for a terminal       See AUP2, Sec. 4.7


#include <unistd.h>

int isatty(
    int fd                              /* file descriptor */
);

Return: 1 if a terminal and 0 if not (may set errno on 0 return)

kill — generate signal for processes       See AUP2, Sec. 9.1.9


#include <signal.h>

int kill(
    pid_t pid,                          /* process ID or other specification */
    int signum                          /* signal */
);

Return: 0 on success or -1 on error (sets errno)

killpg — generate signal for process group       See AUP2, Sec. 9.1.9


#include <signal.h>

int killpg(
    pid_t pgrp,                         /* process-group ID */
    int signum                          /* signal */
);

Return: 0 on success or -1 on error (sets errno)

lchown — change owner and group of symbolic link by path       See AUP2, Sec. 3.7.2


#include <unistd.h>

int lchown(
    const char *path,                   /* pathname */
    uid_t uid,                          /* user ID */
    gid_t gid                           /* group ID */
);

Return: 0 on success or -1 on error (sets errno)

link — create hard link       See AUP2, Sec. 3.3.1


#include <unistd.h>

int link(
    const char *oldpath,                /* old pathname */
    const char *newpath                 /* new pathname */
);

Return: 0 on success or -1 on error (sets errno)

lio_listio — list-directed I/O       See AUP2, Sec. 3.9.9


#include <aio.h>

int lio_listio(
    int mode,                           /* LIO_WAIT or LIO_NOWAIT */
    struct aiocb *const list[],         /* array of control blocks */
    int cbcnt,                          /* number of elements in array */
    struct sigevent *sig                /* NULL or signal to generate */
);

Return: 0 on success or -1 on error (sets errno)

listen — mark socket for accepting and set queue limit       See AUP2, Sec. 8.1.2


#include <sys/socket.h>

int listen(
    int socket_fd,                      /* socket file descriptor */
    int backlog                         /* maximum connection queue length */
);

Return: 0 on success or -1 on error (sets errno)

localtime — convert time_t to local broken-down time       See AUP2, Sec. 1.7.1


#include <time.h>

struct tm *localtime(
    const time_t *t                     /* time */
);

Return: broken-down time (no error return)

lockf — lock section of file       See AUP2, Sec. 7.11.3


#include <unistd.h>

int lockf(
    int fd,                             /* file descriptor */
    int op,                             /* operation */
    off_t len                           /* length of section */
);

Return: 0 on success or -1 on error (sets errno)

longjmp — jump to jump point       See AUP2, Sec. 9.6


#include <setjmp.h>

void longjmp(
    jmp_buf loc_info,                   /* saved location information */
    int val                             /* value for setjmp to return */
);

Return: None

lseek — set and get file offset       See AUP2, Sec. 2.13


#include <unistd.h>

off_t lseek(
    int fd,                             /* file descriptor */
    off_t pos,                          /* position */
    int whence                          /* interpretation */
);

Return: new file offset or -1 on error (sets errno)

lstat — get file info by path without following symbolic link       See AUP2, Sec. 3.5.1


#include <sys/stat.h>

int lstat(
    const char *path,                   /* pathname */
    struct stat *buf                    /* returned information */
);

Return: 0 on success or -1 on error (sets errno)

mkdir — make directory       See AUP2, Sec. 3.6.3


#include <sys/stat.h>

int mkdir(
    const char *path,                   /* pathname */
    mode_t perms                        /* permissions */
);

Return: 0 on success or -1 on error (sets errno)

mkfifo — make a FIFO       See AUP2, Sec. 7.2.1


#include <sys/stat.h>

int mkfifo(
    const char *path,                   /* pathname */
    mode_t perms                        /* permissions */
);

Return: 0 on success or -1 on error (sets errno)

mknod — make file       See AUP2, Sec. 3.8.2


#include <sys/stat.h>

int mknod(
    const char *path,                   /* pathname */
    mode_t perms,                       /* mode */
    dev_t dev                           /* device-ID */
);

Return: 0 on success or -1 on error (sets errno)

mkstemp — create and open file with unique name       See AUP2, Sec. 2.7


#include <stdlib.h>

int mkstemp(
    char *template                      /* template for file name */
);

Return: open file descriptor or -1 on error (may not set errno)

mktime — convert local broken-down time to time_t       See AUP2, Sec. 1.7.1


#include <time.h>

time_t mktime(
    struct tm *tmbuf                    /* broken-down time */
);

Return: time or -1 on error (errno not set)

mmap — map pages of memory       See AUP2, Sec. 7.14.1


#include <sys/mman.h>

void *mmap(
    void *addr,                         /* desired address or NULL */
    size_t len,                         /* length of segment */
    int prot,                           /* protection (see below) */
    int flags,                          /* flags */
    int fd,                             /* file descriptor */
    off_t off                           /* offset in file or shared-memory object */
);

Return: pointer to segment or MAP_FAILED on error (sets errno)

mount — mount file system (non-standard)       See AUP2, Sec. 3.2.4


#include <sys/mount.h>

int mount(
    const char *source,                 /* device */
    const char *target,                 /* directory */
    const char *type,                   /* type (e.g., ext2) */
    unsigned long flags,                /* mount flags (e.g., MS_RDONLY) */
    const void *data                    /* file-system-dependent data */
);

Return: 0 on success or -1 on error (sets errno)

mq_close — close message queue       See AUP2, Sec. 7.7.1


#include <mqueue.h>

int mq_close(
    mqd_t mqd                           /* message-queue descriptor */
);

Return: zero on success or -1 on error (sets errno)

mq_getattr — get message-queue attributes       See AUP2, Sec. 7.7.1


#include <mqueue.h>

int mq_getattr(
    mqd_t mqd,                          /* message-queue descriptor */
    struct mq_attr *attr                /* attributes */
);

Return: 0 on success or -1 on error (sets errno)

mq_notify — register or unregister for message notification       See AUP2, Sec. 7.7.1


#include <mqueue.h>

int mq_notify(
    mqd_t mqd,                          /* message-queue descriptor */
    const struct sigevent *ep           /* notification */
);

Return: 0 on success or -1 on error (sets errno)

mq_open — open message-queue       See AUP2, Sec. 7.7.1


#include <mqueue.h>

mqd_t mq_open(
    const char *name,                   /* POSIX IPC name */
    int flags                           /* flags (excluding O_CREAT) */
);
mqd_t mq_open(
    const char *name,                   /* POSIX IPC name */
    int flags,                          /* flags (including O_CREAT) */
    mode_t perms,                       /* permissions */
    struct mq_attr *attr                /* attributes (or NULL) */
);

Return: message-queue descriptor or -1 on error (sets errno)

mq_receive — receive message       See AUP2, Sec. 7.7.1


#include <mqueue.h>

ssize_t mq_receive(
    mqd_t mqd,                          /* message-queue descriptor */
    char *msg,                          /* message buffer */
    size_t msgsize,                     /* size of message buffer */
    unsigned *priorityp                 /* returned priority or NULL */
);

Return: size of message or -1 on error (sets errno)

mq_send — send message       See AUP2, Sec. 7.7.1


#include <mqueue.h>

int mq_send(
    mqd_t mqd,                          /* message-queue descriptor */
    const char *msg,                    /* message */
    size_t msgsize,                     /* size of message */
    unsigned priority                   /* priority */
);

Return: 0 on success or -1 on error (sets errno)

mq_setattr — set message queue attributes (REALTIME)       See AUP2, Sec. 7.7.1


#include <mqueue.h>

int mq_setattr(
    mqd_t mqd,                          /* message-queue descriptor */
    const struct mq_attr *attr,         /* new attributes */
    struct mq_attr *oldattr             /* old attributes */
);

Return: 0 on success or -1 on error (sets errno)

mq_timedreceive — receive message with timeout       See AUP2, Sec. 7.7.1


#include <mqueue.h>
#include <mqueue.h>
#include <time.h>

ssize_t mq_timedreceive(
    mqd_t mqd,                          /* message-queue descriptor */
    char *msg,                          /* message buffer */
    size_t msgsize,                     /* size of message buffer */
    unsigned *priorityp                 /* returned priority or NULL */
    const struct timespec *tmout        /* timeout */
);

Return: size of message or -1 on error (sets errno)

mq_timedsend — send message with timeout       See AUP2, Sec. 7.7.1


#include <mqueue.h>
#include <mqueue.h>
#include <time.h>

int mq_timedsend(
    mqd_t mqd,                          /* message-queue descriptor */
    const char *msg,                    /* message */
    size_t msgsize,                     /* size of message */
    unsigned priority                   /* priority */
    const struct timespec *tmout        /* timeout */
);

Return: 0 on success or -1 on error (sets errno)

mq_unlink — remove message queue       See AUP2, Sec. 7.7.1


#include <mqueue.h>

int mq_unlink(
    const char *name                    /* POSIX IPC name */
);

Return: 0 on success or -1 on error (sets errno)

msgctl — control message queue       See AUP2, Sec. 7.5.1


#include <sys/msg.h>

int msgctl(
    int msqid,                          /* identifier */
    int cmd,                            /* command */
    struct msqid_ds *data               /* data for command */
);

Return: 0 on success or -1 on error (sets errno)

msgget — get message-queue identifier       See AUP2, Sec. 7.5.1


#include <sys/msg.h>

int msgget(
    key_t key,                          /* key */
    int flags                           /* creation flags */
);

Return: identifier or -1 on error (sets errno)

msgrcv — receive message       See AUP2, Sec. 7.5.1


#include <sys/msg.h>

ssize_t msgrcv(
    int msqid,                          /* identifier */
    const void *msgp,                   /* message */
    size_t mtextsize,                   /* size of mtext buffer */
    long msgtype,                       /* message type requested */
    int flags                           /* flags */
);

Return: number of bytes placed in mtext or -1 on error (sets errno)

msgsnd — send message       See AUP2, Sec. 7.5.1


#include <sys/msg.h>

int msgsnd(
    int msqid,                          /* identifier */
    const void *msgp,                   /* message */
    size_t msgsize,                     /* size of message */
    int flags                           /* flags */
);

Return: 0 on success or -1 on error (sets errno)

munmap — unmap pages of memory       See AUP2, Sec. 7.14.1


#include <sys/mman.h>

int munmap(
    void *addr,                         /* pointer to segment */
    size_t len                          /* length of segment */
);

Return: 0 on success or -1 on error (sets errno)

nanosleep — suspend execution for nanoseconds or until signal       See AUP2, Sec. 9.7.3


#include <time.h>

int nanosleep(
    const struct timespec *nsecs,       /* nanoseconds to sleep */
    struct timespec *remain             /* remaining time */
);

Return: 0 on success or -1 on error (sets errno)

nice — change nice value       See AUP2, Sec. 5.15


#include <unistd.h>

int nice(
    int incr                            /* increment */
);

Return: old nice value - NZERO or -1 on error (sets errno)

ntohl — convert 32-bit value from network to host byte order       See AUP2, Sec. 8.1.4


#include <arpa/inet.h>

uint32_t ntohl(
    uint32_t netnum                     /* 32-bit number in network byte order */
);

Return: number in host byte order (no error return)

ntohs — convert 16-bit value from network to host byte order       See AUP2, Sec. 8.1.4


#include <arpa/inet.h>

uint16_t ntohs(
    uint16_t netnum                     /* 16-bit number in network byte order */
);

Return: number in host byte order (no error return)

open — open or create a file       See AUP2, Sec. 2.4


#include <sys/stat.h>
#include <fcntl.h>

int open(
    const char *path,                   /* pathname */
    int flags,                          /* flags */
    mode_t perms                        /* permissions (when creating) */
);

Return: file descriptor or -1 on error (sets errno)

opendir — open directory       See AUP2, Sec. 3.6.1


#include <dirent.h>

DIR *opendir(
    const char *path                    /* directory pathname */
);

Return: DIR pointer or NULL on error (sets errno)

pathconf — get system option or limit by path       See AUP2, Sec. 1.5.6


#include <unistd.h>

long pathconf(
    const char *path,                   /* pathname */
    int name                            /* option or limit name */
);

Return: option/limit value or -1 (sets errno on error)

pause — wait for signal       See AUP2, Sec. 9.2.1


#include <unistd.h>

int pause(void);

Return: -1 on error (sets errno)

pipe — create pipe       See AUP2, Sec. 6.2.1


#include <unistd.h>

int pipe(
    int pfd[2]                          /* file descriptors */
);

Return: 0 on success or -1 on error (sets errno)

poll — wait for I/O to be ready       See AUP2, Sec. 4.2.4


#include <poll.h>

int poll(
    struct pollfd fdinfo[],             /* info on file descriptors to be tested */
    nfds_t nfds,                        /* number of elements in fdinfo array */
    int timeout                         /* time-out (milliseconds) */
);

Return: number of ready file descriptors or -1 on error (sets errno)

posix_openpt — open pty       See AUP2, Sec. 4.10.1


#include <stdlib.h>
#include <fcntl.h>

int posix_openpt(
    int oflag                           /* O_RDWR optionally ORed with O_NOCTTY */
);

Return: 0 on success or -1 on error (sets errno)

pread — read from file descriptor at offset       See AUP2, Sec. 2.14


#include <unistd.h>

ssize_t pread(
    int fd,                             /* file descriptor */
    void *buf,                          /* address to receive data */
    size_t nbytes                       /* amount to read */
    off_t offset                        /* where to read */
);

Return: number of bytes read or -1 on error (sets errno)

pselect — wait for I/O to be ready       See AUP2, Sec. 4.2.3


#include <sys/select.h>

int pselect(
    int nfds,                           /* highest fd + 1 */
    fd_set *readset,                    /* read set or NULL */
    fd_set *writeset,                   /* write set or NULL */
    fd_set *errorset,                   /* error set or NULL */
    const struct timespec *timeout,     /* time-out (nanoseconds) or NULL */
    const sigset_t *sigmask             /* signal mask */
);

Return: number of bits set or -1 on error (sets errno)

pthread_cancel — cancel thread       See AUP2, Sec. 5.17.5


#include <pthread.h>

int pthread_cancel(
    pthread_t thread_id                 /* ID of thread to cancel */
);

Return: 0 on success, error number on failure

pthread_cleanup_pop — uninstall cleanup handler       See AUP2, Sec. 5.17.5


#include <pthread.h>

void pthread_cleanup_pop(
    int execute                         /* execute handler? */
);

Return: None

pthread_cleanup_push — install cleanup handler       See AUP2, Sec. 5.17.5


#include <pthread.h>

void pthread_cleanup_push(
    void (*handler)(void*),             /* pointer to cleanup-handler function */
    void *arg                           /* data to pass to function */
);

Return: None

pthread_cond_signal — signal condition       See AUP2, Sec. 5.17.4


#include <pthread.h>

int pthread_cond_signal(
    pthread_cond_t *cond                /* condition variable */
);

Return: 0 on success, error number on failure

pthread_cond_wait — wait for condition       See AUP2, Sec. 5.17.4


#include <pthread.h>

int pthread_cond_wait(
    pthread_cond_t *cond,               /* condition variable */   pthread_mutex_t *mutex  /* mutex */
);

Return: 0 on success, error number on failure

pthread_create — create a thread       See AUP2, Sec. 5.17.1


#include <pthread.h>

int pthread_create(
    pthread_t *thread_id,               /* new thread’s ID */
    const pthread_attr_t *attr,         /* attributes (or NULL) */
    void *(*start_fcn)(void *),         /* starting function */
    void *arg                           /* arg to starting function */
);

Return: 0 on success, error number on failure

pthread_join — wait for thread to terminate       See AUP2, Sec. 5.17.2


#include <pthread.h>

int pthread_join(
    pthread_t thread_id,                /* ID of thread to join */
    void **status_ptr                   /* NULL or returned exit status */
);

Return: 0 on success, error number on failure

pthread_kill — generate signal for thread       See AUP2, Sec. 9.1.9


#include <signal.h>

int pthread_kill(
    pthread_t thread_id,                /* thread ID */
    int signum                          /* signal */
);

Return: 0 on success, error number on failure (errno not set)

pthread_mutex_lock — lock mutex       See AUP2, Sec. 5.17.3


#include <pthread.h>

int pthread_mutex_lock(
    pthread_mutex_t *mutex              /* mutex to lock */
);

Return: 0 on success, error number on failure

pthread_mutex_unlock — unlock mutex       See AUP2, Sec. 5.17.3


#include <pthread.h>

int pthread_mutex_unlock(
    pthread_mutex_t *mutex              /* mutex to unlock */
);

Return: 0 on success, error number on failure

pthread_sigmask — change thread’s signal mask       See AUP2, Sec. 9.1.5



int pthread_sigmask(
    int how,                            /* how signal mask is to be changed */
    const sigset_t *set,                /* input set */
    sigset_t *oset                      /* previous signal mask
);

Return: 0 on success, error number on failure (errno not set)

pthread_testcancel — test for cancellation       See AUP2, Sec. 5.17.5


#include <pthread.h>

void pthread_testcancel(void);

Return: None

ptsname — get name of slave side of pty       See AUP2, Sec. 4.10.1


#include <stdlib.h>

char *ptsname(
    int fd                              /* file descriptor */
);

Return: name or NULL on error (errno not set)

putenv — change or add to environment       See AUP2, Sec. 5.2


#include <stdlib.h>

int putenv(
    char *string                        /* string of form name=value */
);

Return: 0 on success or non-zero on error (sets errno)

pwrite — write to file descriptor at offset       See AUP2, Sec. 2.14


#include <unistd.h>

ssize_t pwrite(
    int fd,                             /* file descriptor */
    const void *buf,                    /* data to write */
    size_t nbytes                       /* amount to write */
    off_t offset                        /* where to write */
);

Return: number of bytes written or -1 on error (sets errno)

raise — generate signal for process       See AUP2, Sec. 9.1.9


#include <signal.h>

int raise(
    int signum                          /* signal */
);

Return: 0 on success or non-zero on error (sets errno)

read — read from file descriptor       See AUP2, Sec. 2.10


#include <unistd.h>

ssize_t read(
    int fd,                             /* file descriptor */
    void *buf,                          /* address to receive data */
    size_t nbytes                       /* amount to read */
);

Return: number of bytes read or -1 on error (sets errno)

readdir — read directory       See AUP2, Sec. 3.6.1


#include <dirent.h>

struct dirent *readdir(
    DIR *dirp                           /* DIR pointer from opendir */
);

Return: structure or NULL on EOF or error (sets errno)

readdir_r — read a directory       See AUP2, Sec. 3.6.1


#include <dirent.h>

int readdir_r(
    DIR *restrict dirp,                 /* DIR pointer from opendir */
    struct dirent *entry,               /* structure to hold entry */
    struct dirent **result              /* result (pointer or NULL) */
);

Return: 0 on success or error number on error (sets errno)

readlink — read a symbolic link       See AUP2, Sec. 3.3.3


#include <unistd.h>

ssize_t readlink(
    const char *path,                   /* pathname */
    char *buf,                          /* returned text */
    size_t bufsize                      /* buffer size */
);

Return: byte count or -1 on error (sets errno)

readv — scatter read       See AUP2, Sec. 2.15


#include <sys/uio.h>

ssize_t readv(
    int fd,                             /* file descriptor */
    const struct iovec *iov,            /* vector of data buffers */
    int iovcnt                          /* number of elements */
);

Return: number of bytes read or -1 on error (sets errno)

recv — receive data from socket       See AUP2, Sec. 8.9.1


#include <sys/socket.h>

ssize_t recv(
    int socket_fd,                      /* socket file descriptor */
    void *buffer,                       /* buffer to receive data */
    size_t length,                      /* length of buffer */
    int flags                           /* flags */
);

Return: number of bytes received, 0, or -1 on error (sets errno)

recvfrom — receive message from socket       See AUP2, Sec. 8.6.2


#include <sys/socket.h>

ssize_t recvfrom(
    int socket_fd,                      /* socket file descriptor */
    void *buffer,                       /* buffer for received message */
    size_t length,                      /* length of buffer */
    int flags,                          /* flags */
    struct sockaddr *sa,                /* address of sender */
    socklen_t *sa_len                   /* address length */
);

Return: number of bytes received, 0, or -1 on error (sets errno)

recvmsg — receive a message from a socket       See AUP2, Sec. 8.6.3


#include <sys/socket.h>

ssize_t recvmsg(
    int socket_fd,                      /* socket file descriptor */
    struct msghdr *message,             /* message */
    int flags                           /* flags */
);

Return: number of bytes received, 0, or -1 on error (sets errno)

rename — rename a file       See AUP2, Sec. 3.3.2


#include <stdio.h>

int rename(
    const char *oldpath,                /* old pathname */
    const char *newpath                 /* new pathname */
);

Return: 0 on success or -1 on error (sets errno)

rewinddir — rewind directory       See AUP2, Sec. 3.6.1


#include <dirent.h>

void rewinddir(
    DIR *dirp                           /* DIR pointer from opendir */
);

Return: None

rmdir — remove directory       See AUP2, Sec. 3.6.3


#include <unistd.h>

int rmdir(
    const char *path                    /* pathname */
);

Return: 0 on success or -1 on error (sets errno)

seekdir — seek directory       See AUP2, Sec. 3.6.1


#include <dirent.h>

void seekdir(
    DIR *dirp,                          /* DIR pointer from opendir */
    long loc                            /* location */
);

Return: None

select — wait for I/O to be ready       See AUP2, Sec. 4.2.3


#include <sys/select.h>

int select(
    int nfds,                           /* highest fd + 1 */
    fd_set *readset,                    /* read set or NULL */
    fd_set *writeset,                   /* write set or NULL */
    fd_set *errorset,                   /* error set or NULL */
    struct timeval *timeout             /* time-out (microseconds) or NULL */
);

Return: number of bits set or -1 on error (sets errno)

sem_close — close named semaphore       See AUP2, Sec. 7.10.1


#include <semaphore.h>

int sem_close(
    sem_t *sem                          /* semaphore */
);

Return: 0 on success or -1 on error (sets errno)

sem_destroy — destroy unnamed semaphore       See AUP2, Sec. 7.10.2


#include <semaphore.h>

int sem_destroy(
    sem_t *sem                          /* semaphore */
);

Return: 0 on success or -1 on error (sets errno)

sem_getvalue — get value of semaphore       See AUP2, Sec. 7.10.1


#include <semaphore.h>

int sem_getvalue(
    sem_t *restrict sem,                /* semaphpre */
    int *valuep                         /* returned value */
);

Return: 0 on success or -1 on error (sets errno)

sem_init — initialize unnamed semaphore       See AUP2, Sec. 7.10.2


#include <semaphore.h>

int sem_init(
    sem_t *sem,                         /* semaphore */
    int pshared,                        /* shared between processes? */
    unsigned value                      /* initial value */
);

Return: 0 on success or -1 on error (sets errno)

sem_open — open named semaphore       See AUP2, Sec. 7.10.1


#include <semaphore.h>

sem_t *sem_open(
    const char *name,                   /* POSIX IPC name */
    int flags                           /* flags (excluding O_CREAT) */
);
sem_t *sem_open(
    const char *name,                   /* POSIX IPC name */
    int flags,                          /* flags (including O_CREAT) */
    mode_t perms,                       /* permissions */
    unsigned value                      /* initial value */
);

Return: pointer to semaphore or SEM_FAILED on error (sets errno)

sem_post — increment semaphore       See AUP2, Sec. 7.10.1


#include <semaphore.h>

int sem_post(
    sem_t *sem                          /* semaphore */
);

Return: 0 on success or -1 on error (sets errno)

sem_timedwait — decrement semaphore       See AUP2, Sec. 7.10.1


#include <semaphore.h>
#include <time.h>

int sem_timedwait(
    sem_t *restrict sem,                /* semaphore */
    const struct timespec *time         /* absolute time */
);

Return: 0 on success or -1 on error (sets errno)

sem_trywait — decrement semaphore if possible       See AUP2, Sec. 7.10.1


#include <semaphore.h>

int sem_trywait(
    sem_t *sem                          /* semaphore */
);

Return: 0 on success or -1 on error (sets errno)

sem_unlink — remove named semaphore       See AUP2, Sec. 7.10.1


#include <semaphore.h>

int sem_unlink(
    const char *name                    /* POSIX IPC name */
);

Return: 0 on success or -1 on error (sets errno)

sem_wait — decrement semaphore       See AUP2, Sec. 7.10.1


#include <semaphore.h>

int sem_wait(
    sem_t *sem                          /* semaphore */
);

Return: 0 on success or -1 on error (sets errno)

semctl — control semaphore set       See AUP2, Sec. 7.9.1


#include <sys/sem.h>

int semctl(
    int semid,                          /* identifier */
    int semnum,                         /* semaphore number */
    int cmd,                            /* command */
    union semun arg                     /* argument for command */
);

Return: value or 0 on success; -1 on error (sets errno)

semget — get semaphore-set identifier       See AUP2, Sec. 7.9.1


#include <sys/sem.h>

int semget(
    key_t key,                          /* key */
    int nsems,                          /* size of set */
    int flags                           /* flags */
);

Return: identifier or -1 on error (sets errno)

semop — operate on semaphore set       See AUP2, Sec. 7.9.2


#include <sys/sem.h>

int semop(
    int semid,                          /* identifier */
    struct sembuf *sops,                /* operations */
    size_t nsops                        /* number of operations */
);

Return: 0 on success or -1 on error (sets errno)

send — send data to socket       See AUP2, Sec. 8.9.1


#include <sys/socket.h>

ssize_t send(
    int socket_fd,                      /* socket file descriptor */
    const void *data,                   /* data to send */
    size_t length,                      /* length of data */
    int flags                           /* flags */
);

Return: number of bytes sent or -1 on error (sets errno)

sendmsg — send a message on a socket using a message structure       See AUP2, Sec. 8.6.3


#include <sys/socket.h>

ssize_t sendmsg(
    int socket_fd,                      /* socket file descriptor */
    const struct msghdr *message,       /* message */
    int flags                           /* flags */
);

Return: number of bytes sent or -1 on error (sets errno)

sendto — send message to socket       See AUP2, Sec. 8.6.2


#include <sys/socket.h>

ssize_t sendto(
    int socket_fd,                      /* socket file descriptor */
    const void *message,                /* message to send */
    size_t length,                      /* length of message */
    int flags,                          /* flags */
    const struct sockaddr *sa,          /* target address */
    socklen_t sa_len                    /* length of target address */
);

Return: number of bytes sent or -1 on error (sets errno)

setegid — set effective group ID       See AUP2, Sec. 5.12


#include <unistd.h>

int setegid(
    gid_t gid                           /* effective group ID */
);

Return: 0 on success or -1 on error (sets errno)

setenv — change or add to environment       See AUP2, Sec. 5.2


#include <stdlib.h>

int setenv(
    const char *var,                    /* variable to be changed or added */
    const char *val,                    /* value */
    int overwrite                       /* overwrite? */
);

Return: 0 on success or -1 on error (sets errno)

seteuid — set effective user ID       See AUP2, Sec. 5.12


#include <unistd.h>

int seteuid(
    uid_t uid                           /* effective user ID */
);

Return: 0 on success or -1 on error (sets errno)

setgid — set real and saved group ID       See AUP2, Sec. 5.12


#include <unistd.h>

int setgid(
    gid_t gid                           /* real and saved group ID */
);

Return: 0 on success or -1 on error (sets errno)

sethostent — start host-database scan       See AUP2, Sec. 8.8.1


#include <netdb.h>

void sethostent(
    int stayopen                        /* leave connection open? */
);

Return: None

setitimer — set value of interval timer       See AUP2, Sec. 9.7.4


#include <sys/time.h>

int setitimer(
    int which,                          /* timer to set */
    const struct itimerval *val,        /* value to set */
    struct itimerval *oval              /* returned old value */
);

Return: 0 on success or -1 on error (sets errno)

setjmp — set jump point       See AUP2, Sec. 9.6


#include <setjmp.h>

int setjmp(
    jmp_buf loc_info                    /* saved location information */
);

Return: 0 if called directly, non-zero if from longjmp (no error return)

setnetent — start network-database scan       See AUP2, Sec. 8.8.2


#include <netdb.h>

void setnetent(
    int stayopen                        /* leave connection open? */
);

Return: None

setpgid — set or create process-group       See AUP2, Sec. 4.3.3


#include <unistd.h>

int setpgid(
    pid_t pid,                          /* process ID or 0 for calling process */
    pid_t pgid                          /* process-group ID */
);

Return: 0 on success or -1 on error (sets errno)

setprotoent — start protocol-database scan       See AUP2, Sec. 8.8.3


#include <netdb.h>

void setprotoent(
    int stayopen                        /* leave connection open? */
);

Return: None

setrlimit — set resource limits       See AUP2, Sec. 5.16


#include <sys/resource.h>

int setrlimit(
    int resource,                       /* resource */
    const struct rlimit *rlp            /* limits to set */
);

Return: 0 on success or -1 on error (sets errno)

setservent — start service-database scan       See AUP2, Sec. 8.8.4


#include <netdb.h>

void setservent(
    int stayopen                        /* leave connection open? */
);

Return: None

setsid — create session and process group       See AUP2, Sec. 4.3.2


#include <unistd.h>

pid_t setsid(void);

Return: process-group ID or -1 on error (sets errno)

setsockopt — set the socket options       See AUP2, Sec. 8.3


#include <sys/socket.h>

int setsockopt(
    int socket_fd,                      /* socket file descriptor */
    int level,                          /* level to be accessed */
    int option,                         /* option to set */
    const void *value,                  /* value to set */
    socklen_t value_len                 /* length of value */
);

Return: 0 on success or -1 on error (sets errno)

setuid — set real and saved user ID       See AUP2, Sec. 5.12


#include <unistd.h>

int setuid(
    uid_t uid                           /* real and saved user ID */
);

Return: 0 on success or -1 on error (sets errno)

shm_open — open shared-memory object       See AUP2, Sec. 7.14.1


#include <sys/mman.h>

int shm_open(
    const char *name,                   /* POSIX IPC name */
    int flags,                          /* flags */
    mode_t perms                        /* permissions */
);

Return: file descriptor or -1 on error (sets errno)

shm_unlink — remove shared-memory object       See AUP2, Sec. 7.14.1


#include <sys/mman.h>

int shm_unlink(
    const char *name                    /* POSIX IPC name */
);

Return: 0 on success or -1 on error (sets errno)

shmat — attach shared memory segment       See AUP2, Sec. 7.13.1


#include <sys/shm.h>

void *shmat(
    int shmid,                          /* identifier */
    const void *shmaddr,                /* desired address or NULL */
    int flags                           /* attachment flags */
);

Return: pointer or -1 on error (sets errno)

shmctl — control shared memory segment       See AUP2, Sec. 7.13.1


#include <sys/shm.h>

int shmctl(
    int shmid,                          /* identifier */
    int cmd,                            /* command */
    struct shmid_ds *data               /* data for command */
);

Return: 0 on success or -1 on error (sets errno)

shmdt — detach shared memory segment       See AUP2, Sec. 7.13.1


#include <sys/shm.h>

int shmdt(
    const void *shmaddr                 /* pointer to segment */
);

Return: 0 on success or -1 on error (sets errno)

shmget — get shared memory segment       See AUP2, Sec. 7.13.1


#include <sys/shm.h>

int shmget(
    key_t key,                          /* key */
    size_t size,                        /* size of segment */
    int flags                           /* creation flags */
);

Return: shared-memory identifier or -1 on error (sets errno)

shutdown — shut down socket send and/or receive operations       See AUP2, Sec. 8.9.4


#include <sys/socket.h>

int shutdown(
    int socket_fd,                      /* socket file descriptor */
    int how                             /* SHUT_RD, SHUT_WR, or SHUT_RDWR */
);

Return: 0 on success or -1 on error (sets errno)

sigaction — set signal action       See AUP2, Sec. 9.1.6


#include <signal.h>

int sigaction(
    int signum,                         /* signal */
    const struct sigaction *act,        /* new action */
    struct sigaction *oact              /* old action */
);

Return: 0 on success or -1 on error (sets errno)

sigaddset — add signal to signal set       See AUP2, Sec. 9.1.5


#include <signal.h>

int sigaddset(
    sigset_t *set,                      /* signal set */
    int signum                          /* signal */
);

Return: 0 on success or -1 on error (sets errno)

sigaltstack — set and get alternate stack context       See AUP2, Sec. 9.3


#include <signal.h>

int sigaltstack(
    const stack_t *stack,               /* new stack */
    stack_t *ostack                     /* old stack */
);

Return: 0 on success or -1 on error (sets errno)

sigdelset — delete a signal from a signal set       See AUP2, Sec. 9.1.5


#include <signal.h>

int sigdelset(
    sigset_t *set,                      /* signal set */
    int signum                          /* signal */
);

Return: 0 on success or -1 on error (sets errno)

sigemptyset — initialize empty signal set       See AUP2, Sec. 9.1.5


#include <signal.h>

int sigemptyset(
    sigset_t *set                       /* signal set */
);

Return: 0 on success or -1 on error (sets errno)

sigfillset — initialize full signal set       See AUP2, Sec. 9.1.5


#include <signal.h>

int sigfillset(
    sigset_t *set                       /* signal set */
);

Return: 0 on success or -1 on error (sets errno)

sighold — block a signal       See AUP2, Sec. 9.4


#include <signal.h>

int sighold(
    int signum,                         /* signal */
);

Return: 0 on success or -1 on error (sets errno)

sigignore — ignore signal       See AUP2, Sec. 9.4


#include <signal.h>

int sigignore(
    int signum,                         /* signal */
);

Return: 0 on success or -1 on error (sets errno)

siginfo_t — structure for sigaction       See AUP2, Sec. 9.5.1



typedef struct {
    int si_signo;                       /* signal number */
    int si_errno;                       /* errno value associated with signal */
    int si_code;                        /* signal code (see below) */
    pid_t si_pid;                       /* sending process ID */
    uid_t si_uid;                       /* real user ID of sending process */
    void *si_addr;                      /* address of faulting instruction */
    int si_status;                      /* exit value or signal */
    long si_band;                       /* band event for SIGPOLL */
    union sigval si_value;              /* signal value */
} siginfo_t;

Return: None

siginterrupt — set or clear SA_RESTART flag       See AUP2, Sec. 9.3


#include <signal.h>

int siginterrupt(
    int signum,                         /* signal */
    int on                              /* non-zero to set, zero to clear */
);

Return: 0 on success or -1 on error (sets errno)

sigismember — test for signal in signal set       See AUP2, Sec. 9.1.5


#include <signal.h>

int sigismember(
    const sigset_t *set,                /* signal set */
    int signum                          /* signal */
);

Return: 1 if member, 0 if not, or -1 on error (sets errno)

siglongjmp — jump to jump point, restore signal mask if saved       See AUP2, Sec. 9.6


#include <setjmp.h>

void siglongjmp(
    sigjmp_buf loc_info,                /* saved location information */
    int val                             /* value for sigsetjmp to return */
);

Return: None

signal — set signal action       See AUP2, Sec. 9.4


#include <signal.h>

void (*signal(
    int signum,                         /* signal */
    void (*act)(int)                    /* new action */
))(int);

Return: old action or SIG_ERR on error (sets errno)

sigpause — change signal mask and wait for signal       See AUP2, Sec. 9.4


#include <signal.h>

int sigpause(
    int signum,                         /* signal */
);

Return: -1 on error, always (sets errno)

sigpending — examine pending signals       See AUP2, Sec. 9.3


#include <signal.h>

int sigpending(
    sigset_t *set                       /* returned set of pending signals */
);

Return: 0 on success or -1 on error (sets errno)

sigprocmask — change thread’s signal mask (single thread only)       See AUP2, Sec. 9.1.5


#include <signal.h>

int sigprocmask(
    int how,                            /* how signal mask is to be changed */
    const sigset_t *set,                /* input set */
    sigset_t *oset                      /* previous signal mask */
);

Return: 0 on success or -1 on error (sets errno)

sigqueue — generate signal for process       See AUP2, Sec. 9.5.4


#include <signal.h>

int sigqueue(
    pid_t pid,                          /* process ID */
    int signum,                         /* signal */
    const union sigval value            /* value */
);

Return: 0 on success or -1 on error (sets errno)

sigrelse — unblock signal       See AUP2, Sec. 9.4


#include <signal.h>

int sigrelse(
    int signum,                         /* signal */
);

Return: 0 on success or -1 on error (sets errno)

sigset — signal management       See AUP2, Sec. 9.4


#include <signal.h>

void (*sigset(
    int signum,                         /* signal */
    void (*act)(int)                    /* new action */
))(int);

Return: old action or SIG_ERR on error (sets errno)

sigsetjmp — set jump point       See AUP2, Sec. 9.6


#include <setjmp.h>

int sigsetjmp(
    sigjmp_buf loc_info,                /* saved location information */
    int savemask                        /* non-zero to save signal mask */
);

Return: 0 if called directly, non-zero if from siglongjmp (no error return)

sigsuspend — change signal mask and wait for signal       See AUP2, Sec. 9.2.3


#include <signal.h>

int sigsuspend(
    const sigset_t *sigmask             /* temporary signal mask */
);

Return: -1 on error, always (sets errno)

sigtimedwait — wait for signal       See AUP2, Sec. 9.5.5


#include <signal.h>

int sigtimedwait(
    const sigset_t *set,                /* signals to wait for */
    siginfo_t *info,                    /* returned info */
    const struct timespec *ts           /* max. time to wait */
);

Return: signal number or -1 on error (sets errno)

sigwait — wait for signal       See AUP2, Sec. 9.2.2


#include <signal.h>

int sigwait(
    const sigset_t *set,                /* signals to wait for */
    int *signum                         /* signal that was delivered */
);

Return: 0 on success or error number on error

sigwaitinfo — wait for signal       See AUP2, Sec. 9.5.5


#include <signal.h>

int sigwaitinfo(
    const sigset_t *set,                /* signals to wait for */
    siginfo_t *info                     /* returned info */
);

Return: signal number or -1 on error (sets errno)

sleep — suspend execution for seconds or until signal       See AUP2, Sec. 9.7.2


#include <unistd.h>

unsigned sleep(
    unsigned secs                       /* seconds to sleep */
);

Return: unslept amount

sockatmark — test presence of out-of-band mark       See AUP2, Sec. 8.7


#include <sys/socket.h>

int sockatmark(
    int socket_fd,                      /* socket file descriptor */
);

Return: 1 if at mark, 0 if not, or -1 on error (sets errno)

socket — create endpoint for communication       See AUP2, Sec. 8.1.2


#include <sys/socket.h>

int socket(
    int domain,                         /* domain (AF_UNIX, AF_INET, etc.) */
    int type,                           /* SOCK_STREAM, SOCK_DGRAM, etc. */
    int protocol                        /* specific to type; usually zero */
);

Return: file descriptor or -1 on error (sets errno)

socketpair — create pair of sockets       See AUP2, Sec. 8.9.3


#include <sys/socket.h>

int socketpair(
    int domain,                         /* domain (AF_UNIX, AF_INET, etc.) */
    int type,                           /* SOCK_STREAM, SOCK_DGRAM, etc. */
    int protocol                        /* specific to type; usually zero */
    int socket_vector[2]                /* returned socket file descriptors */
);

Return: 0 on success or -1 on error (sets errno)

stat — get file info by path       See AUP2, Sec. 3.5.1


#include <sys/stat.h>

int stat(
    const char *path,                   /* pathname */
    struct stat *buf                    /* returned information */
);

Return: 0 on success or -1 on error (sets errno)

statvfs — get file system information by path       See AUP2, Sec. 3.2.3


#include <sys/statvfs.h>

int statvfs(
    const char *path                    /* pathname */
    struct statvfs *buf                 /* returned info */
);

Return: 0 on success or -1 on error (sets errno)

strftime — convert broken-down time to string with format       See AUP2, Sec. 1.7.1


#include <time.h>

size_t strftime(
    char *buf,                          /* output buffer */
    size_t bufsize,                     /* size of buffer */
    const char *format,                 /* format */
    const struct tm *tmbuf              /* broken-down time */
);

Return: byte count or 0 on error (errno not set)

strptime — convert string to broken-down time with format       See AUP2, Sec. 1.7.1


#include <time.h>

char *strptime(
    const char *s,                      /* string to convert */
    const char *format,                 /* format */
    struct tm *tmbuf                    /* broken-down time (output) */
);

Return: ? or NULL on error (errno not set)

struct SimpleSem — structure for simple-semaphore functions       See AUP2, Sec. 7.9.2



struct SimpleSem {
    union {
        int sm_semid;                   /* System V semaphore-set ID */
        void *sm_sem;                   /* POSIX sem_t pointer (needs a cast) */
    } sm;
};

struct addrinfo — structure for getaddrinfo       See AUP2, Sec. 8.2.6



struct addrinfo {
    int ai_flags;                       /* input flags */
    int ai_family;                      /* address family */
    int ai_socktype;                    /* socket type */
    int ai_protocol;                    /* protocol */
    socklen_t ai_addrlen;               /* length of socket address */
    struct sockaddr *ai_addr;           /* socket address */
    char *ai_canonname;                 /* canonical name of service location */
    struct addrinfo *ai_next;           /* pointer to next structure in list */
};

struct aiocb — AIO control block       See AUP2, Sec. 3.9.2



struct aiocb {
    int aio_fildes;                     /* file descriptor */
    off_t aio_offset;                   /* file offset */
    volatile void *aio_buf;             /* buffer */
    size_t aio_nbytes;                  /* size of transfer */
    int aio_reqprio;                    /* request priority offset */
    struct sigevent aio_sigevent;       /* signal information */
    int aio_lio_opcode;                 /* operation to be performed */
};

struct dirent — structure for readdir       See AUP2, Sec. 3.6.1



struct dirent {
    ino_t d_ino;                        /* i-number */
    char d_name[];                      /* name */
};

struct flock — structure for fcntl file locking       See AUP2, Sec. 7.11.4



struct flock {
    short l_type;                       /* lock type: F_RDLCK, F_WRLCK, F_UNLCK */
    short l_whence;                     /* interpretation of l_start */
    off_t l_start;                      /* start of section */
    off_t l_len;                        /* length of section */
    pid_t l_pid;                        /* process holding lock; used with F_GETLK */
};

struct group — structure for getgrgid       See AUP2, Sec. 3.5.2



struct group {
    char *gr_name;                      /* group name */
    gid_t gr_gid;                       /* group ID */
    char **gr_mem;                      /* member-name array (NULL terminated */
};

struct hostent — structure for host-database functions       See AUP2, Sec. 8.8.1



struct hostent {
    char *h_name;                       /* official host name */
    char **h_aliases;                   /* array of alternative host names */
    int h_addrtype;                     /* address family (not type) */
    int h_length;                       /* length of each address */
    char **h_addr_list;                 /* array of pointers to network addresses */
};

struct if_nameindex — structure for network-interface functions       See AUP2, Sec. 8.8.5



struct if_nameindex {
    unsigned if_index;                  /* interface index */
    char *if_name;                      /* interface name */
};

struct iovec — structure for readv and writev       See AUP2, Sec. 2.15



struct iovec {
    void *iov_base;                     /* base address of data */
    size_t iov_len;                     /* size of this piece */
};

struct ipc_perm — structure for System V IPC permissions       See AUP2, Sec. 7.4.3



struct ipc_perm {
    uid_t uid;                          /* owner user-ID */
    gid_t gid;                          /* owner group-ID */
    uid_t cuid;                         /* creator user-ID */
    gid_t cgid;                         /* creator group-ID */
    mode_t mode;                        /* permission bits */
};

struct itimerspec — structure for timer_ functions       See AUP2, Sec. 9.7.6



struct itimerspec {
    struct timespec it_interval;        /* reset value */ 
    struct timespec it_value;           /* current value */
};

struct itimerval — structure for getitimer and setitimer       See AUP2, Sec. 9.7.4



struct itimerval {
    struct timeval it_interval;         /* reset value */
    struct timeval it_value;            /* current value */
};

struct mq_attr — structure for mq_open, mq_getattr, and mq_setattr       See AUP2, Sec. 7.7.1



struct mq_attr {
    long mq_flags;                      /* flags */
    long mq_maxmsg;                     /* max number of messages */
    long mq_msgsize;                    /* max message size */
    long mq_curmsgs;                    /* number of messages currently queued */
};

struct msg — typical structure for msgsnd and msgrcv       See AUP2, Sec. 7.5.1



struct msg {
    long mtype;                         /* message type */
    char mtext[MTEXTSIZE];              /* message text */
};

struct msghdr — structure for sendmsg and recvmsg       See AUP2, Sec. 8.6.3



struct msghdr {
    void *msg_name;                     /* optional address */
    socklen_t msg_namelen;              /* size of address */
    struct iovec *msg_iov;              /* scatter/gather array */
    int msg_iovlen;                     /* number of elements in msg_iov */
    void *msg_control;                  /* ancillary data */
    socklen_t msg_controllen;           /* ancillary data buffer len */
    int msg_flags;                      /* flags on received message */
};

struct msqid_ds — structure for msgctl       See AUP2, Sec. 7.5.1



struct msqid_ds {
    struct ipc_perm msg_perm;           /* permission structure */
    msgqnum_t msg_qnum;                 /* number of messages currently on queue */
    msglen_t msg_qbytes;                /* maximum number of bytes allowed on queue */
    pid_t msg_lspid;                    /* process ID of last msgsnd */
    pid_t msg_lrpid;                    /* process ID of last msgrcv */
    time_t msg_stime;                   /* time of last msgsnd */
    time_t msg_rtime;                   /* time of last msgrcv */
    time_t msg_ctime;                   /* time of last msgctl change */
};

struct netent — structure for network-database functions       See AUP2, Sec. 8.8.2



struct netent {
    char *n_name;                       /* official network name */
    char **n_aliases;                   /* array of alternative network names */
    int n_addrtype;                     /* address family (not type) */
    uint32_t n_net;                     /* network number */
};

struct passwd — structure for getpwuid       See AUP2, Sec. 3.5.2



struct passwd {
    char *pw_name;                      /* login name */
    uid_t pw_uid;                       /* user ID */
    gid_t pw_gid;                       /* group ID */
    char *pw_dir;                       /* login directory */
    char *pw_shell;                     /* login shell */ 
};

struct pollfd — structure for poll       See AUP2, Sec. 4.2.4



struct pollfd {
    int fd;                             /* file descriptor */
    short events;                       /* input event flags (see table, below) */ 
    short revents;                      /* output event flags (see table, below) */
};

struct protoent — structure for protocol-database functions       See AUP2, Sec. 8.8.3



struct protoent {
    char *p_name;                       /* official protocol name */
    char **p_aliases;                   /* array of alternative protocol names */
    int p_proto;                        /* protocol number */
};

struct rlimit — structure for getrlimit and setrlimit       See AUP2, Sec. 5.16



struct rlimit {
    rlim_t rlim_cur;                    /* current (soft) limit */
    rlim_t rlim_max;                    /* maximum (hard) limit */
};

struct rusage — structure for getrusage       See AUP2, Sec. 5.16



struct rusage {
    struct timeval ru_utime;            /* user time used */
    struct timeval ru_stime;            /* system time used */
                                        /* following members are nonstandard */
    long ru_maxrss;                     /* maximum resident set size */
    long ru_ixrss;                      /* integral shared memory size */
    long ru_idrss;                      /* integral unshared data size */
    long ru_isrss;                      /* integral unshared stack size */
    long ru_minflt;                     /* page reclaims */
    long ru_majflt;                     /* page faults */
    long ru_nswap;                      /* swaps */
    long ru_inblock;                    /* block input operations */
    long ru_oublock;                    /* block output operations */
    long ru_msgsnd;                     /* messages sent */
    long ru_msgrcv;                     /* messages received */
    long ru_nsignals;                   /* signals received */
    long ru_nvcsw;                      /* voluntary context switches */
    long ru_nivcsw;                     /* involuntary context switches */
};

struct sembuf — structure for semop       See AUP2, Sec. 7.9.2



struct sembuf {
    unsigned short sem_num;             /* semaphore number */
    short sem_op;                       /* Semaphore operation */
    short sem_flg;                      /* Operation flags */
};

struct semid_ds — structure for semctl       See AUP2, Sec. 7.9.1



struct semid_ds {
    struct ipc_perm sem_perm;           /* permission structure */
    unsigned short sem_nsems;           /* size of set */
    time_t sem_otime;                   /* time of last semop */
    time_t sem_ctime;                   /* time of last semctl */
};

struct servent — structure for service-database functions       See AUP2, Sec. 8.8.4



struct servent {
    char *s_name;                       /* official service name */
    char **s_aliases;                   /* array of alternative service names */
    int s_port;                         /* port number */
    char *s_proto;                      /* name of protocol for this service */
};

struct sigaction — structure for sigaction       See AUP2, Sec. 9.1.6



struct sigaction {
    void (*sa_handler)(int);            /* SIG_DFL, SIG_IGN, or function pointer */
    sigset_t sa_mask;                   /* additional signals to be blocked */  int sa_flags;   /* flags */
    void (*sa_sigaction)(int, siginfo_t *, void *); /* Realtime Signal handler */
};

struct sigevent — structure for RTS-generation functions       See AUP2, Sec. 9.5.6



struct sigevent {
    int sigev_notify;                   /* notification type (see below) */
    int sigev_signo;                    /* signal number */
    union sigval sigev_value;           /* signal value */
    void (*sigev_notify_function)(union sigval); /* thread function */
    pthread_attr_t *sigev_notify_attributes;     /* thread attributes */ 
};

struct sockaddr_in — structure for AF_INET socket addresses       See AUP2, Sec. 8.2.3


#include <netinet/in.h>

struct sockaddr_in {
    sa_family_t sin_family;             /* AF_INET */
    in_port_t sin_port;                 /* port number (uint16_t) */
    struct in_addr sin_addr;            /* IPv4 address */
};
struct in_addr {
    in_addr_t s_addr                    /* IPv4 address (uint32_t) */
};

struct sockaddr_in6 — structure for AF_INET6 socket addresses       See AUP2, Sec. 8.2.4


#include <netinet/in.h>

struct sockaddr_in6 {
    sa_family_t sin6_family;            /* AF_INET6 */
    in_port_t sin6_port;                /* port number (uint16_t) */
    uint32_t sin6_flowinfo;             /* traffic class and flow information */
    struct in6_addr sin6_addr;          /* IPv4 address */
    uint32_t sin6_scope_id;             /* set of interfaces for a scope */
};
struct in6_addr {
    uint8_t s6_addr[16];                /* IPv6 address */
};

struct sockaddr_un — structure for AF_UNIX socket addresses       See AUP2, Sec. 8.2.2


#include <sys/un.h>

struct sockaddr_un {
    sa_family_t sun_family;             /* AF_UNIX */
    char sun_path[X];                   /* socket pathname */
};

struct stat — structure for stat, fstat, and lstat       See AUP2, Sec. 3.5.1



struct stat {
    dev_t st_dev;                       /* device ID of file system */
    ino_t st_ino;                       /* i-number  */
    mode_t st_mode;                     /* mode (see below).*/
    nlink_t st_nlink;                   /* number of hard links */
    uid_t st_uid;                       /* user ID */
    gid_t st_gid;                       /* group ID */
    dev_t st_rdev;                      /* device ID (if special file). */
    off_t st_size;                      /* size in bytes */
    time_t st_atime;                    /* last access */
    time_t st_mtime;                    /* last data modification */
    time_t st_ctime;                    /* last i-node modification */
    blksize_t st_blksize;               /* optimal I/O size */
    blkcnt_t st_blocks;                 /* allocated 512-byte blocks */
};

struct statvfs — structure for statvfs and fstatvfs       See AUP2, Sec. 3.2.3



struct statvfs {
    unsigned long f_bsize;              /* block size */ 
    unsigned long f_frsize;             /* fundamental (fblock) size */ 
    fsblkcnt_t f_blocks;                /* total number of fblocks */ 
    fsblkcnt_t f_bfree;                 /* number of free fblocks */ 
    fsblkcnt_t f_bavail;                /* number of avail. fblocks */
    fsfilcnt_t f_files;                 /* total number of i-numbers */ 
    fsfilcnt_t f_ffree;                 /* number of free i-numbers */ 
    fsfilcnt_t f_favail;                /* number of avail. i-numbers */
    unsigned long f_fsid;               /* file-system ID */ 
    unsigned long f_flag;               /* flags (see below) */ 
    unsigned long f_namemax;            /* max length of filename */
};

struct termios — structure for terminal-control functions       See AUP2, Sec. 4.5.1



struct termios {
    tcflag_t c_iflag;                   /* input flags */
    tcflag_t c_oflag;                   /* output flags */
    tcflag_t c_cflag;                   /* control flags */
    tcflag_t c_lflag;                   /* local flags */
    cc_t c_cc[NCCS];                    /* control characters */
};

struct timespec — structure for time in seconds and nanoseconds       See AUP2, Sec. 1.7.2



struct timespec {
    time_t tv_sec;                      /* seconds */
    long tv_nsec;                       /* nanoseconds */
};

struct timeval — structure for gettimeofday       See AUP2, Sec. 1.7.1



struct timeval {
    time_t tv_sec;                      /* seconds */
    suseconds_t tv_usec;                /* microseconds */
};

struct tm — structure for broken-down time       See AUP2, Sec. 1.7.1



struct tm {
    int tm_sec;                         /* second [0,60] */
    int tm_min;                         /* minute [0,59] */
    int tm_hour;                        /* hour [0,23] */
    int tm_mday;                        /* day of month [1,31] */
    int tm_mon;                         /* month  [0,11] */
    int tm_year;                        /* years since 1900 */
    int tm_wday;                        /* day of week [0,6] (0 = Sunday) */
    int tm_yday;                        /* day of year [0,365] */
    int tm_isdst;                       /* daylight-savings flag */
};

struct tms — structure for times system call       See AUP2, Sec. 1.7.2



struct tms {
    clock_t tms_utime;                  /* user time */
    clock_t tms_stime;                  /* sys time */
    clock_t tms_cutime;                 /* user time of terminated children */ 
    clock_t tms_cstime;                 /* sys time of terminated children */ 
};

struct utimbuf — structure for utime       See AUP2, Sec. 3.7.3



struct utimbuf {
    time_t actime;                      /* access time */
    time_t modtime;                     /* modification time */
};

symlink — create a symbolic link       See AUP2, Sec. 3.3.3


#include <unistd.h>

int symlink(
    const char *oldpath,                /* old pathname */
    const char *newpath                 /* possible new pathname */
);

Return: 0 on success or -1 on error (sets errno)

sync — schedule buffer-cache flushing       See AUP2, Sec. 2.16.2


#include <unistd.h>

void sync(void);

Return: None

sysconf — get system option or limit       See AUP2, Sec. 1.5.5


#include <unistd.h>

long sysconf(
    int name                            /* option or limit name */
);

Return: option/limit value or -1 (sets errno on error)

system — run command       See AUP2, Sec. 5.5


#include <stdlib.h>

int system(
    const char *command                 /* command */
);

Return: exit status or -1 on error (sets errno)

tcdrain — drain (wait for) terminal output       See AUP2, Sec. 4.6


#include <termios.h>

int tcdrain(
    int fd                              /* file descriptor */
);

Return: 0 on success or -1 on error (sets errno)

tcflow — suspend or restart flow of terminal input or output       See AUP2, Sec. 4.6


#include <termios.h>

int tcflow(
    int fd,                             /* file descriptor */
    int action                          /* direction and suspend/restart */
);

Return: 0 on success or -1 on error (sets errno)

tcflush — flush (throw away) terminal output, input, or both       See AUP2, Sec. 4.6


#include <termios.h>

int tcflush(
    int fd,                             /* file descriptor */
    int queue                           /* queue to be affected */
);

Return: 0 on success or -1 on error (sets errno)

tcgetattr — get terminal attributes       See AUP2, Sec. 4.5.1


#include <termios.h>

int tcgetattr(
    int fd,                             /* file descriptor */
    struct termios *tp                  /* attributes */
);

Return: 0 on success or -1 on error (sets errno)

tcgetpgrp — get foreground process-group ID       See AUP2, Sec. 4.3.4


#include <unistd.h>

pid_t tcgetpgrp(
    int fd                              /* file descriptor */
);

Return: process-group ID or -1 on error (sets errno)

tcgetsid — get session ID       See AUP2, Sec. 4.3.4


#include <termios.h>

pid_t tcgetsid(
    int fd                              /* file descriptor */
);

Return: session ID or -1 on error (sets errno)

tcsendbreak — send break to terminal       See AUP2, Sec. 4.6


#include <termios.h>

int tcsendbreak(
    int fd,                             /* file descriptor */
    int duration                        /* duration of break */
);

Return: 0 on success or -1 on error (sets errno)

tcsetattr — set terminal attributes       See AUP2, Sec. 4.5.1


#include <termios.h>

int tcsetattr(
    int fd,                             /* file descriptor */
    int actions,                        /* actions on setting */
    const struct termios *tp            /* attributes */
);

Return: 0 on success or -1 on error (sets errno)

tcsetpgrp — set foreground process-group ID       See AUP2, Sec. 4.3.4


#include <unistd.h>

int tcsetpgrp(
    int fd,                             /* file descriptor */
    pid_t pgid                          /* process-group ID */
);

Return: 0 on success or -1 on error (sets errno)

telldir — get directory location       See AUP2, Sec. 3.6.1


#include <dirent.h>

long telldir(
    DIR *dirp                           /* DIR pointer from opendir */
);

Return: location (no error return)

time — get current date and time as time_t       See AUP2, Sec. 1.7.1


#include <time.h>

time_t time(
    time_t *t                           /* NULL or returned time */
);

Return: time or -1 on error (errno not set)

timer_create — create per-process timer       See AUP2, Sec. 9.7.6


#include <signal.h>
#include <time.h>

int timer_create(
    clockid_t clockid,                  /* clock ID */
    struct sigevent *sig,               /* NULL or signal to generate */
    timer_t *timer_id                   /* returned timer ID */
);

Return: 0 on success or -1 on error (sets errno)

timer_delete — delete per-process timer       See AUP2, Sec. 9.7.6


#include <time.h>

int timer_delete(
    timer_t timer_id                    /* timer ID */
);

Return: 0 on success or -1 on error (sets errno)

timer_getoverrun — get per-process timer overrun count       See AUP2, Sec. 9.7.6


#include <time.h>

int timer_getoverrun(
    timer_t timer_id                    /* timer ID */
);

Return: overrun count or -1 on error (sets errno)

timer_gettime — get value of per-process timer       See AUP2, Sec. 9.7.6


#include <time.h>

int timer_gettime(
    timer_t timer_id,                   /* timer ID */
    struct itimerspec *val              /* returned value */
);

Return: 0 on success or -1 on error (sets errno)

timer_settime — set value of per-process timer       See AUP2, Sec. 9.7.6


#include <time.h>

int timer_settime(
    timer_t timer_id,                   /* timer ID */
    int flags,                          /* flags */
    const struct itimerspec *val,       /* value to set */
    struct itimerspec *oval             /* returned old value */
);

Return: 0 on success or -1 on error (sets errno)

times — get process and child-process execution times       See AUP2, Sec. 1.7.2


#include <sys/times.h>

clock_t times(
    struct tms *buffer                  /*  */
);

Return: time in clock ticks or -1 on error (sets errno)

truncate — truncate or stretch file by path       See AUP2, Sec. 2.17


#include <unistd.h>

int truncate(
    const char *path,                   /* pathname */
    off_t length                        /* new length */
);

Return: 0 on success or -1 on error (sets errno)

ttyname — find pathname of terminal       See AUP2, Sec. 4.7


#include <unistd.h>

char *ttyname(
    int fd                              /* file descriptor */
);

Return: string or NULL on error (sets errno)

ttyname_r — find pathname of terminal       See AUP2, Sec. 4.7


#include <unistd.h>

int ttyname_r(
    int fd,                             /* file descriptor */
    char *buf,                          /* buffer for pathname */
    size_t bufsize                      /* size of buffer */
);

Return: 0 on success or error number on error (sets errno)

tzset — set time zone information       See AUP2, Sec. 1.7.1


#include <time.h>

extern int daylight;                    /* DST? (not in FreeBSD) */
extern long timezone;                   /* timezone in secs (not in FreeBSD) */
extern char *tzname[2];                 /* timezone strings (not in FreeBSD) */
void tzset(void);

Return: None

ulimit — get and set process limits       See AUP2, Sec. 5.16


#include <ulimit.h>

long ulimit(
    int cmd,                            /* command */
    ...                                 /* optional argument */
);

Return: limit or -1 with errno changed on error (sets errno)

umask — set and get file mode creation mask       See AUP2, Sec. 2.5


#include <sys/stat.h>

mode_t umask(
    mode_t cmask                        /* new mask */
);

Return: previous mask (no error return)

umount — unmount file system (non-standard)       See AUP2, Sec. 3.2.4


#include <sys/mount.h>

int umount(
    const char *target                  /* directory */
);

Return: 0 on success or -1 on error (sets errno)

uname — get the name of the current system       See AUP2, Sec. 8.8.1


#include <sys/utsname.h>

int uname(
    struct utsname *name                /*  */
);

Return: ? or -1 on error (sets errno)

union semun — union for semctl       See AUP2, Sec. 7.9.1



union semun {
    int val;                            /* integer */
    struct semid_ds *buf;               /* pointer to structure */
    unsigned short *array;              /* array */
};

union sigval — union for signal values       See AUP2, Sec. 9.5.1



union sigval {
    int sival_int;                      /* Integer signal value */
    void *sival_ptr;                    /* Pointer signal value */
};

unlink — remove directory entry       See AUP2, Sec. 2.6


#include <unistd.h>

int unlink(
    const char *path                    /* pathname */
);

Return: 0 on success or -1 on error (sets errno)

unlockpt — unlock pty       See AUP2, Sec. 4.10.1


#include <stdlib.h>

int unlockpt(
    int fd                              /* file descriptor */
);

Return: 0 on success or -1 on error (sets errno)

unsetenv — remove environment variable       See AUP2, Sec. 5.2


#include <stdlib.h>

int unsetenv(
    const char *var                     /* variable to be removed */
);

Return: 0 on success or -1 on error (sets errno)

usleep — suspend execution for microseconds or until signal       See AUP2, Sec. 9.7.3


#include <unistd.h>

int usleep(
    useconds_t usecs                    /* microseconds to sleep */
);

Return: 0 on success or -1 on error (sets errno)

utime — set file access and modification times       See AUP2, Sec. 3.7.3


#include <utime.h>

int utime(
    const char *path,                   /* pathname */
    const struct utimbuf *timbuf        /* new times */
);

Return: 0 on success or -1 on error (sets errno)

vfork — create new process; share memory (obsolete)       See AUP2, Sec. 5.5


#include <unistd.h>

pid_t vfork(void);

Return: child’s process-ID and 0 on success or -1 on error (sets errno)

wait — wait for child process to terminate       See AUP2, Sec. 5.8


#include <sys/wait.h>

pid_t wait(
    int *statusp,                       /* pointer to status or NULL */
);

Return: process ID or -1 on error (sets errno)

waitid — wait for child process to change state [X/Open]       See AUP2, Sec. 5.8


#include <sys/wait.h>

int waitid(
    idtype_t idtype,                    /* interpretation of id */
    id_t id,                            /* process or process-group ID */
    siginfo_t *infop,                   /* returned info */
    int options                         /* options */
);

Return: 0 on success or -1 on error (sets errno)

waitpid — wait for child process to change state       See AUP2, Sec. 5.8


#include <sys/wait.h>

pid_t waitpid(
    pid_t pid,                          /* process or process-group ID */
    int *statusp,                       /* pointer to status or NULL */
    int options                         /* options (see below) */
);

Return: process ID or 0 on success or -1 on error (sets errno)

wcsftime — convert broken-down time to wide-character string with format       See AUP2, Sec. 1.7.1


#include <wchar.h>

size_t wcsftime(
    wchar_t *buf,                       /* output buffer */
    size_t bufsize,                     /* size of buffer */
    const wchar_t *format,              /* format */
    const struct tm *tmbuf              /* broken-down time */
);

Return: wchar_t count or zero on error (errno not set)

write — write to file descriptor       See AUP2, Sec. 2.9


#include <unistd.h>

ssize_t write(
    int fd,                             /* file descriptor */
    const void *buf,                    /* data to write */
    size_t nbytes                       /* amount to write */
);

Return: number of bytes written or -1 on error (sets errno)

writev — gather write       See AUP2, Sec. 2.15


#include <sys/uio.h>

ssize_t writev(
    int fd,                             /* file descriptor */
    const struct iovec *iov,            /* vector of data buffers */
    int iovcnt                          /* number of elements */
);

Return: number of bytes written or -1 on error (sets errno)