.B #include <unistd.h>
.PP
.BI "void _exit(int " status );
-.PP
+
.B #include <stdlib.h>
.PP
.BI "void _Exit(int " status );
.B #include <sys/socket.h>
.PP
.BI "int accept(int " sockfd ", struct sockaddr *" addr ", socklen_t *" addrlen );
-.PP
+
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
.B #include <sys/socket.h>
.PP
.BI "int chmod(const char *" pathname ", mode_t " mode );
.br
.BI "int fchmod(int " fd ", mode_t " mode );
-.PP
+
.BR "#include <fcntl.h>" " /* Definition of AT_* constants */"
.B #include <sys/stat.h>
.PP
.PP
.BI "int dup(int " oldfd );
.BI "int dup2(int " oldfd ", int " newfd );
-.PP
+
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
.BR "#include <fcntl.h>" " /* Obtain O_* constant definitions */
.B #include <unistd.h>
.B #include <unistd.h>
.PP
.BI "int getgroups(int " size ", gid_t " list []);
-.PP
+
.B #include <grp.h>
.PP
.BI "int setgroups(size_t " size ", const gid_t *" list );
.B #include <keyutils.h>
.PP
.BI "long keyctl(int " operation ", ...)"
-.PP
+
.B "/* For direct call via syscall(2): */"
.B #include <asm/unistd.h>
.B #include <linux/keyctl.h>
.B #include <unistd.h>
.PP
.BI "int link(const char *" oldpath ", const char *" newpath );
-.PP
+
.BR "#include <fcntl.h> " "/* Definition of AT_* constants */"
.B #include <unistd.h>
.PP
.\" .B #include <unistd.h>
.PP
.BI "int mkdir(const char *" pathname ", mode_t " mode );
-.PP
+
.BR "#include <fcntl.h> " "/* Definition of AT_* constants */"
.B #include <sys/stat.h>
.PP
.B #include <unistd.h>
.PP
.BI "int mknod(const char *" pathname ", mode_t " mode ", dev_t " dev );
-.PP
+
.BR "#include <fcntl.h> " "/* Definition of AT_* constants */"
.B #include <sys/stat.h>
.PP
.B #include <unistd.h>
.PP
.BI "int pipe(int " pipefd "[2]);"
-.PP
+
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
.BR "#include <fcntl.h>" " /* Obtain O_* constant definitions */
.B #include <unistd.h>
.B #include <poll.h>
.PP
.BI "int poll(struct pollfd *" fds ", nfds_t " nfds ", int " timeout );
-.PP
+
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
.B #include <signal.h>
.B #include <poll.h>
.B #include <linux/reboot.h>
.PP
.BI "int reboot(int " magic ", int " magic2 ", int " cmd ", void *" arg );
-.PP
+
/* Under glibc and most alternative libc's (including uclibc, dietlibc,
musl and a few others), some of the constants involved have gotten
symbolic names RB_*, and the library call is a 1-argument
.B #include <stdio.h>
.PP
.BI "int rename(const char *" oldpath ", const char *" newpath );
-.PP
+
.BR "#include <fcntl.h> " "/* Definition of AT_* constants */"
.B #include <stdio.h>
.PP
/* According to POSIX.1-2001, POSIX.1-2008 */
.br
.B #include <sys/select.h>
-.PP
+
/* According to earlier standards */
.br
.B #include <sys/time.h>
.BI "void FD_SET(int " fd ", fd_set *" set );
.br
.BI "void FD_ZERO(fd_set *" set );
-.PP
+
.B #include <sys/select.h>
.PP
.BI "int pselect(int " nfds ", fd_set *" readfds ", fd_set *" writefds ,
/* According to POSIX.1-2001, POSIX.1-2008 */
.br
.B #include <sys/select.h>
-.PP
+
/* According to earlier standards */
.br
.B #include <sys/time.h>
.BI "void FD_SET(int " fd ", fd_set *" set );
.br
.BI "void FD_ZERO(fd_set *" set );
-.PP
+
.B #include <sys/select.h>
.PP
.BI "int pselect(int " nfds ", fd_set *" readfds ", fd_set *" writefds ,
.BI "int fstat(int " fd ", struct stat *" statbuf );
.br
.BI "int lstat(const char *" pathname ", struct stat *" statbuf );
-.PP
+
.BR "#include <fcntl.h> " "/* Definition of AT_* constants */"
.B #include <sys/stat.h>
.PP
.B #include <unistd.h>
.PP
.BI "int symlink(const char *" target ", const char *" linkpath );
-.PP
+
.BR "#include <fcntl.h> " "/* Definition of AT_* constants */"
.B #include <unistd.h>
.PP
.B #include <unistd.h>
.PP
.BI "int unlink(const char *" pathname );
-.PP
+
.BR "#include <fcntl.h> " "/* Definition of AT_* constants */"
.B #include <unistd.h>
.PP
.B #include <sys/platform/ppc.h>
.PP
.BI "uint64_t __ppc_get_timebase(void)"
-
+.PP
.BI "uint64_t __ppc_get_timebase_freq(void);"
.SH DESCRIPTION
.BR __ppc_get_timebase ()
.BI "long int labs(long int " j );
.br
.BI "long long int llabs(long long int " j );
-.PP
+
.B #include <inttypes.h>
.PP
.BI "intmax_t imaxabs(intmax_t " j );
.SH SYNOPSIS
.nf
.B #include <strings.h>
-
+.PP
.BI "void bzero(void *" s ", size_t " n );
.B #include <string.h>
-
+.PP
.BI "void explicit_bzero(void *" s ", size_t " n );
.fi
.SH DESCRIPTION
.B #include <unistd.h>
.PP
.BI "char *crypt(const char *" key ", const char *" salt );
-.PP
+
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
.br
.B #include <crypt.h>
.B #include <limits.h>
.B #include <db.h>
.B #include <fcntl.h>
-
+.PP
.BI "DB *dbopen(const char *" file ", int " flags ", int " mode \
", DBTYPE " type ,
.BI " const void *" openinfo );
.nf
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
.B #include <link.h>
-
+.PP
.BI "int dl_iterate_phdr("
.BI " int (*" callback ") (struct dl_phdr_info *" info ,
.BI " size_t " size ", void *" data "),"
.B #define _GNU_SOURCE
.B #include <link.h>
.B #include <dlfcn.h>
-
+.PP
.BR "int dlinfo(void *" handle ", int " request ", void *" info );
-
+.PP
Link with \fI\-ldl\fP.
.fi
.SH DESCRIPTION
.B #include <dlfcn.h>
.PP
.BI "void *dlsym(void *" handle ", const char *" symbol );
-.PP
+
.B #define _GNU_SOURCE
.br
.B #include <dlfcn.h>
.SH SYNOPSIS
.nf
.B #include <locale.h>
-
+.PP
.BI "locale_t duplocale(locale_t " locobj );
.fi
.PP
.B #include <unistd.h>
.PP
.BI "void encrypt(char " block "[64], int " edflag );
-.PP
+
.BR "#define _XOPEN_SOURCE" " /* See feature_test_macros(7) */"
.br
.B #include <stdlib.h>
.PP
.BI "void setkey(const char *" key );
-.PP
+
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
.br
.B "#include <crypt.h>"
.BI "void warn(const char *" fmt ", ...);"
.PP
.BI "void warnx(const char *" fmt ", ...);"
-.PP
+
.B #include <stdarg.h>
.PP
.BI "void verr(int " eval ", const char *" fmt ", va_list " args );
.B #include <strings.h>
.PP
.BI "int ffs(int " i );
-.PP
+
.B #include <string.h>
.PP
.BI "int ffsl(long int " i );
.B #include <stdio.h>
.PP
.BI "int fpurge(FILE *" stream );
-.PP
+
/* supported */
.B #include <stdio.h>
.br
.SH SYNOPSIS
.nf
.B #include <ftw.h>
-
+.PP
.BI "int nftw(const char *" dirpath ,
.BI " int (*" fn ") (const char *" fpath ", const struct stat *" sb ,
.BI " int " typeflag ", struct FTW *" ftwbuf ),
.BI " int " nopenfd ", int " flags );
.B #include <ftw.h>
-
+.PP
.BI "int ftw(const char *" dirpath ,
.BI " int (*" fn ") (const char *" fpath ", const struct stat *" sb ,
.BI " int " typeflag ),
.BI "struct tm *getdate(const char *" string );
.PP
.B "extern int getdate_err;"
-.PP
+
.B "#include <time.h>"
.PP
.BI "int getdate_r(const char *" string ", struct tm *" res );
.B extern int h_errno;
.PP
.BI "struct hostent *gethostbyname(const char *" name );
-.PP
+
.BR "#include <sys/socket.h>" " /* for AF_INET */"
.BI "struct hostent *gethostbyaddr(const void *" addr ,
.BI " socklen_t " len ", int " type );
.B "char *getlogin(void);"
.br
.BI "int getlogin_r(char *" buf ", size_t " bufsize );
-.PP
+
.B #include <stdio.h>
.PP
.BI "char *cuserid(char *" string );
.BI "int endmntent(FILE *" streamp );
.PP
.BI "char *hasmntopt(const struct mntent *" mnt ", const char *" opt );
-.PP
+
/* GNU extension */
.B #include <mntent.h>
.PP
.B #include <pwd.h>
.PP
.BI "int getpwent_r(struct passwd *" pwbuf ", char *" buf ,
-.br
.BI " size_t " buflen ", struct passwd **" pwbufp );
.PP
.BI "int fgetpwent_r(FILE *" stream ", struct passwd *" pwbuf ", char *" buf ,
-.br
.BI " size_t " buflen ", struct passwd **" pwbufp );
.fi
.PP
.BI "struct passwd *getpwuid(uid_t " uid );
.PP
.BI "int getpwnam_r(const char *" name ", struct passwd *" pwd ,
-.br
.BI " char *" buf ", size_t " buflen ", struct passwd **" result );
.PP
.BI "int getpwuid_r(uid_t " uid ", struct passwd *" pwd ,
-.br
.BI " char *" buf ", size_t " buflen ", struct passwd **" result );
.fi
.PP
.SH SYNOPSIS
.nf
/* General shadow password file API */
-.br
.B #include <shadow.h>
.PP
.BI "struct spwd *getspnam(const char *" name );
.B int lckpwdf(void);
.PP
.B int ulckpwdf(void);
-.PP
+
/* GNU extension */
-.br
.B #include <shadow.h>
.PP
.BI "int getspent_r(struct spwd *" spbuf ,
-.br
.BI " char *" buf ", size_t " buflen ", struct spwd **" spbufp );
.PP
.BI "int getspnam_r(const char *" name ", struct spwd *" spbuf ,
-.br
.BI " char *" buf ", size_t " buflen ", struct spwd **" spbufp );
.PP
.BI "int fgetspent_r(FILE *" stream ", struct spwd *" spbuf ,
-.br
.BI " char *" buf ", size_t " buflen ", struct spwd **" spbufp );
.PP
.BI "int sgetspent_r(const char *" s ", struct spwd *" spbuf ,
-.br
.BI " char *" buf ", size_t " buflen ", struct spwd **" spbufp );
.fi
.PP
.SH SYNOPSIS
.nf
.B #include <arpa/inet.h>
-
+.PP
.BI "int inet_pton(int " "af" ", const char *" "src" ", void *" "dst" );
.fi
.SH DESCRIPTION
.B #include <search.h>
.PP
.BI "void insque(void *" elem ", void *" prev );
-
+.PP
.BI "void remque(void *" elem );
.fi
.PP
.nf
.B #include <sys/stat.h>
.B #include <sys/socket.h>
-
+.PP
.BI "int isfdtype(int " fd ", int " fdtype );
.fi
.PP
mallinfo \- obtain memory allocation information
.SH SYNOPSIS
.B #include <malloc.h>
-
+.PP
.B struct mallinfo mallinfo(void);
.SH DESCRIPTION
The
mallopt \- set memory allocation parameters
.SH SYNOPSIS
.B #include <malloc.h>
-
+.PP
.BI "int mallopt(int " param ", int " value );
.SH DESCRIPTION
The
.SH SYNOPSIS
.nf
.B #include <math.h>
-
+.PP
.BI "int matherr(struct exception *" exc );
-
+.PP
.B extern _LIB_VERSION_TYPE _LIB_VERSION;
.fi
.PP
.B #include <mcheck.h>
.PP
.BI "int mcheck(void (*" abortfunc ")(enum mcheck_status " mstatus ));
-
+.PP
.BI "int mcheck_pedantic(void (*" abortfunc ")(enum mcheck_status " mstatus ));
-
+.PP
.B void mcheck_check_all(void);
-
+.PP
.BI "enum mcheck_status mprobe(void *" ptr );
.fi
.SH DESCRIPTION
.SH SYNOPSIS
.nf
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
-.br
.B #include <string.h>
.PP
.BI "void *mempcpy(void *" dest ", const void *" src ", size_t " n );
-.PP
+
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
-.br
.B #include <wchar.h>
.PP
.BI "wchar_t *wmempcpy(wchar_t *" dest ", const wchar_t *" src ", size_t " n );
.B #include <sys/stat.h>
.PP
.BI "int mkfifo(const char *" pathname ", mode_t " mode );
-.PP
+
.BR "#include <fcntl.h> " "/* Definition of AT_* constants */"
.B #include <sys/stat.h>
.PP
.B #include <mqueue.h>
.PP
.BI "int mq_getattr(mqd_t " mqdes ", struct mq_attr *" attr );
-
+.PP
.BI "int mq_setattr(mqd_t " mqdes ", const struct mq_attr *" newattr ","
.BI " struct mq_attr *" oldattr );
.fi
.SH SYNOPSIS
.nf
.B #include <locale.h>
-
+.PP
.BI "locale_t newlocale(int " category_mask ", const char *" locale ",
.BI " locale_t " base );
-
+.PP
.BI "void freelocale(locale_t " locobj );
.fi
.PP
.SH SYNOPSIS
.nf
.B #include <stdio.h>
-
+.PP
.BI "FILE *open_memstream(char **" ptr ", size_t *" sizeloc );
.B #include <wchar.h>
-
+.PP
.BI "FILE *open_wmemstream(wchar_t **" ptr ", size_t *" sizeloc );
.fi
.PP
.BI "pid_t forkpty(int *" amaster ", char *" name ,
.BI " const struct termios *" termp ,
.BI " const struct winsize *" winp );
-.PP
+
.B #include <utmp.h>
.PP
.BI "int login_tty(int " fd );
.B #include <stdio.h>
.PP
.BI "void perror(const char *" s );
-.PP
+
.B #include <errno.h>
.PP
.BI "const char * const " sys_errlist [];
.BI "int posix_memalign(void **" memptr ", size_t " alignment ", size_t " size );
.BI "void *aligned_alloc(size_t " alignment ", size_t " size );
.BI "void *valloc(size_t " size );
-.PP
+
.B #include <malloc.h>
.PP
.BI "void *memalign(size_t " alignment ", size_t " size );
.SH SYNOPSIS
.nf
.B #include <spawn.h>
-
+.PP
.BI "int posix_spawn(pid_t *" pid ", const char *" path ,
.BI " const posix_spawn_file_actions_t *" file_actions ,
.BI " const posix_spawnattr_t *" attrp ,
.BI " char *const " argv[] ", char *const " envp[] );
-
+.PP
.BI "int posix_spawnp(pid_t *" pid ", const char *" file ,
.BI " const posix_spawn_file_actions_t *" file_actions ,
.BI " const posix_spawnattr_t *" attrp ,
.BI "int sprintf(char *" str ", const char *" format ", ...);"
.br
.BI "int snprintf(char *" str ", size_t " size ", const char *" format ", ...);"
-.PP
+
.B #include <stdarg.h>
.PP
.BI "int vprintf(const char *" format ", va_list " ap );
.SH SYNOPSIS
.nf
.B #include <pthread.h>
-
+.PP
.BI "int pthread_attr_init(pthread_attr_t *" attr );
.BI "int pthread_attr_destroy(pthread_attr_t *" attr );
.PP
.SH SYNOPSIS
.nf
.B #include <pthread.h>
-
+.PP
.BI "int pthread_cancel(pthread_t " thread );
.PP
Compile and link with \fI\-pthread\fP.
.SH SYNOPSIS
.nf
.B #include <pthread.h>
-
+.PP
.BI "void pthread_cleanup_push(void (*" routine ")(void *),"
.BI " void *" arg );
.BI "void pthread_cleanup_pop(int " execute );
.SH SYNOPSIS
.nf
.B #include <pthread.h>
-
+.PP
.BI "int pthread_create(pthread_t *" thread ", const pthread_attr_t *" attr ,
.BI " void *(*" start_routine ") (void *), void *" arg );
.fi
.nf
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
.B #include <pthread.h>
-
+.PP
.BI "int pthread_getattr_default_np(pthread_attr_t *" attr );
.BI "int pthread_setattr_default_np(pthread_attr_t *" attr );
.PP
.nf
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
.B #include <pthread.h>
-
+.PP
.BI "int pthread_getattr_np(pthread_t " thread ", pthread_attr_t *" attr );
.PP
Compile and link with \fI\-pthread\fP.
.nf
.B #include <pthread.h>
.B #include <time.h>
-
+.PP
.BI "int pthread_getcpuclockid(pthread_t " thread ", clockid_t *" clock_id );
.PP
Compile and link with \fI\-pthread\fP.
.nf
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
.B #include <pthread.h>
-
+.PP
.BI "int pthread_setaffinity_np(pthread_t " thread ", size_t " cpusetsize ,
.BI " const cpu_set_t *" cpuset );
.BI "int pthread_getaffinity_np(pthread_t " thread ", size_t " cpusetsize ,
.SH SYNOPSIS
.nf
.B #include <pthread.h>
-
+.PP
.BI "int pthread_setschedparam(pthread_t " thread ", int " policy ,
.BI " const struct sched_param *" param );
.BI "int pthread_getschedparam(pthread_t " thread ", int *" policy ,
.SH SYNOPSIS
.nf
.B #include <signal.h>
-
+.PP
.BI "int pthread_sigmask(int " how ", const sigset_t *" set \
", sigset_t *" oldset );
.fi
.nf
.B #include <signal.h>
.B #include <pthread.h>
-
+.PP
.BI "int pthread_sigqueue(pthread_t " thread ", int " sig ,
.BI " const union sigval " value );
.fi
.nf
.B #include <sys/types.h>
.B #include <regex.h>
-
+.PP
.BI "int regcomp(regex_t *" preg ", const char *" regex ", int " cflags );
-
+.PP
.BI "int regexec(const regex_t *" preg ", const char *" string \
", size_t " nmatch ,
.BI " regmatch_t " pmatch[] ", int " eflags );
-
+.PP
.BI "size_t regerror(int " errcode ", const regex_t *" preg ", char *" errbuf ,
.BI " size_t " errbuf_size );
-
+.PP
.BI "void regfree(regex_t *" preg );
.fi
.SH DESCRIPTION
.B #include <netinet/in.h>
.B #include <arpa/nameser.h>
.B #include <resolv.h>
-
+.PP
.B struct __res_state;
.B typedef struct __res_state *res_state;
-
+.PP
.BI "int res_ninit(res_state " statep );
-
+.PP
.BI "int res_nquery(res_state " statep ,
.BI " const char *" dname ", int " class ", int " type ,
.BI " unsigned char *" answer ", int " anslen );
-
+.PP
.BI "int res_nsearch(res_state " statep ,
.BI " const char *" dname ", int " class ", int " type ,
.BI " unsigned char *" answer ", int " anslen );
-
+.PP
.BI "int res_nquerydomain(res_state " statep ,
.BI " const char *" name ", const char *" domain ,
.BI " int " class ", int " type ", unsigned char *" answer ,
.BI " int " anslen );
-
+.PP
.BI "int res_nmkquery(res_state " statep ,
.BI " int " op ", const char *" dname ", int " class ,
.BI " int " type ", const unsigned char *" data ", int " datalen ,
.BI " const unsigned char *" newrr ,
.BI " unsigned char *" buf ", int " buflen );
-
+.PP
.BI "int res_nsend(res_state " statep ,
.BI " const unsigned char *" msg ", int " msglen ,
.BI " unsigned char *" answer ", int " anslen );
-
+.PP
.BI "int dn_comp(const char *" exp_dn ", unsigned char *" comp_dn ,
.BI " int " length ", unsigned char **" dnptrs ,
.BI " unsigned char **" lastdnptr );
-
+.PP
.BI "int dn_expand(const unsigned char *" msg ,
.BI " const unsigned char *" eomorig ,
.BI " const unsigned char *" comp_dn ", char *" exp_dn ,
.SS Deprecated
.nf
.B extern struct __res_state _res;
-
+.PP
.B int res_init(void);
-
+.PP
.BI "int res_query(const char *" dname ", int " class ", int " type ,
.BI " unsigned char *" answer ", int " anslen );
-
+.PP
.BI "int res_search(const char *" dname ", int " class ", int " type ,
.BI " unsigned char *" answer ", int " anslen );
-
+.PP
.BI "int res_querydomain(const char *" name ", const char *" domain ,
.BI " int " class ", int " type ", unsigned char *" answer ,
.BI " int " anslen );
-
+.PP
.BI "int res_mkquery(int " op ", const char *" dname ", int " class ,
.BI " int " type ", const unsigned char *" data ", int " datalen ,
.BI " const unsigned char *" newrr ,
.BI " unsigned char *" buf ", int " buflen );
-
+.PP
.BI "int res_send(const unsigned char *" msg ", int " msglen ,
.BI " unsigned char *" answer ", int " anslen );
.fi
.SH SYNOPSIS
.nf
.B #include <stdlib.h>
-
+.PP
.BI "int rpmatch(const char *" response );
.fi
.PP
.B #include <linux/rtnetlink.h>
.br
.B #include <sys/socket.h>
-
+.PP
.BI "rtnetlink_socket = socket(AF_NETLINK, int " socket_type \
", NETLINK_ROUTE);"
.PP
.SH SYNOPSIS
.nf
.B #include <stdio.h>
-
+.PP
.BI "int scanf(const char *" format ", ...);"
.BI "int fscanf(FILE *" stream ", const char *" format ", ...);"
.BI "int sscanf(const char *" str ", const char *" format ", ...);"
-.PP
-.B #include <stdarg.h>
+.B #include <stdarg.h>
+.PP
.BI "int vscanf(const char *" format ", va_list " ap );
.BI "int vsscanf(const char *" str ", const char *" format ", va_list " ap );
.BI "int vfscanf(FILE *" stream ", const char *" format ", va_list " ap );
.SH SYNOPSIS
.nf
.B #include <stdio.h>
-
+.PP
.BI "void setbuf(FILE *" stream ", char *" buf );
-
+.PP
.BI "void setbuffer(FILE *" stream ", char *" buf ", size_t " size );
-
+.PP
.BI "void setlinebuf(FILE *" stream );
-
+.PP
.BI "int setvbuf(FILE *" stream ", char *" buf ", int " mode \
", size_t " size );
.fi
.BI "char *strchr(const char *" s ", int " c );
.PP
.BI "char *strrchr(const char *" s ", int " c );
-.PP
+
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
.B #include <string.h>
.PP
.SH SYNOPSIS
.nf
.B #include <stdlib.h>
-
+.PP
.BI "int strfromd(char *restrict " str ", size_t " n ",
.BI " const char *restrict " format ", double " fp ");"
.BI "int strfromf(char *restrict " str ", size_t " n ",
.BI "int strfroml(char *restrict " str ", size_t " n ",
.BI " const char *restrict " format ", long double " fp ");"
.fi
-
+.PP
.in -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.SH SYNOPSIS
.nf
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
-.br
.B #include <string.h>
.PP
.BI "int strverscmp(const char *" s1 ", const char *" s2 );
.SH SYNOPSIS
.nf
.B #include <termios.h>
-.br
.B #include <unistd.h>
.PP
.BI "int tcgetattr(int " fd ", struct termios *" termios_p );
.BI "void twalk(const void *" root ", void (*" action ")(const void *" nodep ,
.BI " const VISIT " which ,
.BI " const int " depth "));"
-.PP
+
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
-.br
.B #include <search.h>
.PP
.BI "void tdestroy(void *" root ", void (*" free_node ")(void *" nodep ));
.PP
.BI "char *fgets_unlocked(char *" s ", int " n ", FILE *" stream );
.BI "int fputs_unlocked(const char *" s ", FILE *" stream );
-.PP
+
.B #include <wchar.h>
.PP
.BI "wint_t getwc_unlocked(FILE *" stream );
.BI "void logwtmp(const char *" line ", const char *" name \
", const char *" host );
.fi
-
+.PP
For
.BR logwtmp (),
link with \fI\-lutil\fP.
.B #include <asm/types.h>
.B #include <sys/socket.h>
.B #include <linux/netlink.h>
-
+.PP
.BI "netlink_socket = socket(AF_NETLINK, " socket_type ", " netlink_family );
.fi
.SH DESCRIPTION
.SH NAME
rtld-audit \- auditing API for the dynamic linker
.SH SYNOPSIS
+.nf
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
-
.B #include <link.h>
+.fi
.SH DESCRIPTION
The GNU dynamic linker (run-time linker)
provides an auditing API that allows an application
.B #include <linux/sock_diag.h>
.BR "#include <linux/unix_diag.h>" " /* for UNIX domain sockets */"
.BR "#include <linux/inet_diag.h>" " /* for IPv4 and IPv6 sockets */"
-
+.PP
.BI "diag_socket = socket(AF_NETLINK, " socket_type ", NETLINK_SOCK_DIAG);"
.fi
.SH DESCRIPTION
.B #include <sys/socket.h>
.br
.B #include <sys/un.h>
-
+.PP
.IB unix_socket " = socket(AF_UNIX, type, 0);"
.br
.IB error " = socketpair(AF_UNIX, type, 0, int *" sv ");"