LIBC(3LIB) Interface Libraries LIBC(3LIB)

libc - C library

Functions in this library provide various facilities defined by System V, ANSI C, POSIX, and so on. See standards(5). In addition, those facilities previously defined in the internationalization and the wide-character libraries are now defined in this library, as are the facilities previously defined in the multithreading libraries, libthread and libpthread.

The shared object libc.so.1 provides the public interfaces defined below. See Intro(3) for additional information on shared object interfaces.

____loc1 ___errno
__builtin_alloca __ctype
__fbufsize __flbf
__flt_rounds __fpending
__fpurge __freadable
__freading __fsetlocking
__fwritable __fwriting
__huge_val __iob
__loc1 __major
__makedev __mb_cur_max_l
__minor
__nsw_extended_action __nsw_freeconfig
__nsw_getconfig __posix_asctime_r
__posix_ctime_r __posix_getgrgid_r
__posix_getgrnam_r __posix_getlogin_r
__posix_getpwnam_r __posix_getpwuid_r
__posix_sigwait __posix_ttyname_r
__priocntl __priocntlset
__pthread_cleanup_pop __pthread_cleanup_push
__sysconf_xpg5 __xpg4
__xpg4_putmsg __xpg4_putpmsg
_Exit _altzone
_assert _cleanup
_ctype _daylight
_environ _exit
_exithandle _filbuf
_flsbuf _flushlbf
_getdate_err _getdate_err_addr
_iob _isnan
_isnand _lwp_cond_broadcast
_lwp_cond_reltimedwait _lwp_cond_signal
_lwp_cond_timedwait _lwp_cond_wait
_lwp_continue _lwp_info
_lwp_kill _lwp_mutex_lock
_lwp_mutex_trylock _lwp_mutex_unlock
_lwp_self _lwp_sema_init
_lwp_sema_post _lwp_sema_trywait
_lwp_sema_wait _lwp_suspend
_lwp_suspend2 _modf
_nextafter _nsc_trydoorcall
_nss_XbyY_buf_alloc _nss_XbyY_buf_free
_nss_netdb_aliases _numeric
_scalb _sibuf
_sobuf _stack_grow
_sys_buslist _sys_cldlist
_sys_fpelist _sys_illlist
_sys_segvlist _sys_siginfolistp
_sys_siglist _sys_siglistn
_sys_siglistp _sys_traplist
_timezone _tolower
_toupper _tzname
_xftw
a64l abort
abs access
acct acl
addrtosymstr addsev
addseverity adjtime
aio_cancel aio_error
aio_fsync aio_read
aio_return aio_suspend
aio_waitn aio_write
aiocancel aioread
aiowait aiowrite
alarm alphasort
altzone ascftime
asctime asctime_r
asprintf
atexit atof
atoi atol
atoll atomic_add_16
atomic_add_16_nv atomic_add_32
atomic_add_32_nv atomic_add_64
atomic_add_64_nv atomic_add_8
atomic_add_8_nv atomic_add_char
atomic_add_char_nv atomic_add_int
atomic_add_int_nv atomic_add_long
atomic_add_long_nv atomic_add_ptr
atomic_add_ptr_nv atomic_add_short
atomic_add_short_nv atomic_and_16
atomic_and_16_nv atomic_and_32
atomic_and_32_nv atomic_and_64
atomic_and_64_nv atomic_and_8
atomic_and_8_nv atomic_and_uchar
atomic_and_uchar_nv atomic_and_uint
atomic_and_uint_nv atomic_and_ulong
atomic_and_ulong_nv atomic_and_ushort
atomic_and_ushort_nv atomic_cas_16
atomic_cas_32 atomic_cas_64
atomic_cas_8 atomic_cas_ptr
atomic_cas_uchar atomic_cas_uint
atomic_cas_ulong atomic_cas_ushort
atomic_clear_long_excl atomic_dec_16
atomic_dec_16_nv atomic_dec_32
atomic_dec_32_nv atomic_dec_64
atomic_dec_64_nv atomic_dec_8
atomic_dec_8_nv atomic_dec_ptr
atomic_dec_ptr_nv atomic_dec_uchar
atomic_dec_uchar_nv atomic_dec_uint
atomic_dec_uint_nv atomic_dec_ulong
atomic_dec_ulong_nv atomic_dec_ushort
atomic_dec_ushort_nv atomic_inc_16
atomic_inc_16_nv atomic_inc_32
atomic_inc_32_nv atomic_inc_64
atomic_inc_64_nv atomic_inc_8
atomic_inc_8_nv atomic_inc_ptr
atomic_inc_ptr_nv atomic_inc_uchar
atomic_inc_uchar_nv atomic_inc_uint
atomic_inc_uint_nv atomic_inc_ulong
atomic_inc_ulong_nv atomic_inc_ushort
atomic_inc_ushort_nv atomic_or_16
atomic_or_16_nv atomic_or_32
atomic_or_32_nv atomic_or_64
atomic_or_64_nv atomic_or_8
atomic_or_8_nv atomic_or_uchar
atomic_or_uchar_nv atomic_or_uint
atomic_or_uint_nv atomic_or_ulong
atomic_or_ulong_nv atomic_or_ushort
atomic_or_ushort_nv atomic_set_long_excl
atomic_swap_16 atomic_swap_32
atomic_swap_64 atomic_swap_8
atomic_swap_ptr atomic_swap_uchar
atomic_swap_uint atomic_swap_ulong
atomic_swap_ushort attropen
backtrace backtrace_symbols
backtrace_symbols_fd basename
bcmp bcopy
bindtextdomain bind_textdomain_codeset
brk bsd_signal
bsearch
btowc btowc_l
bzero calloc
canonicalize_file_name
catclose catgets
catopen cfgetispeed
cfgetospeed cfsetispeed
cfsetospeed cftime
chdir chmod
chown chroot
clearerr clearenv
clock
clock_getres clock_gettime
clock_nanosleep clock_settime
close closedir
closefrom closelog
cond_broadcast cond_destroy
cond_init cond_reltimedwait
cond_signal cond_timedwait
cond_wait confstr
creat crypt
crypt_genhash_impl crypt_gensalt
crypt_gensalt_impl csetcol
csetlen ctermid
ctermid_r ctime
ctime_r cuserid
daemon
daylight dbm_clearerr
dbm_close dbm_delete
dbm_error dbm_fetch
dbm_firstkey dbm_nextkey
dbm_open dbm_store
dcgettext dcngettext
decimal_to_double decimal_to_extended
decimal_to_quadruple decimal_to_single
dgettext difftime
directio dirfd
dirname div
dladdr dladdr1
dlclose dldump
dlerror dlinfo
dlmopen dlopen
dlsym dngettext
door_bind door_call
door_create door_cred
door_getparam door_info
door_return door_revoke
door_server_create door_setparam
door_ucred door_unbind
double_to_decimal drand48
dup dup2
duplocale
econvert ecvt
enable_extended_FILE_stdio
encrypt endgrent
endnetgrent endpwent
endspent endusershell
endutent endutxent
environ erand48
err errno
errx euccol
euclen eucscol
execl execle
execlp execv
execve execvp
exit extended_to_decimal
faccessat
facl fattach
fchdir fchmod
fchmodat
fchown fchownat
fchroot fclose
fcloseall fcntl
fconvert fcvt
fdatasync fdetach
fdopen fdopendir
fdwalk feof
ferror fflush
ffs ffsl
ffsll fls
flsl flsll
fgetattr fgetc
fgetgrent fgetgrent_r
fgetpos fgetpwent
fgetpwent_r fgets
fgetspent fgetspent_r
fgetwc fgetwc_l
fgetws
file_to_decimal fileno
finite flockfile
fmtmsg fnmatch
fopen fork
fork1 forkall
forkallx forkx
fpathconf fpclass
fpgetmask fpgetround
fpgetsticky fprintf
fpsetmask fpsetround
fpsetsticky fputc
fputs fputwc
fputws fread
free freelocale
freopen
frexp fscanf
fseek fseeko
fsetattr
fsetpos fstat
fstatat fstatfs
fstatvfs fsync
ftell ftello
ftime ftok
ftruncate ftrylockfile
ftw func_to_decimal
funlockfile futimens
futimesat
fwide fwprintf
fwrite fwscanf
gconvert gcvt
getacct getattrat
getc
getc_unlocked getchar
getchar_unlocked getcontext
getcpuid getcwd
getdate getdate_err
getdents getdtablesize
getegid getenv
geteuid getexecname
getextmntent getgid
getgrent getgrent_r
getgrgid getgrgid_r
getgrnam getgrnam_r
getgroups gethomelgroup
gethostid gethostname
gethrtime gethrvtime
getisax getitimer
getloadavg getlogin
getlogin_r getmntany
getmntent getmsg
get_nprocs get_nprocs_conf
getnetgrent getnetgrent_r
getopt getopt_clip
getopt_long getopt_long_only
getpagesize getpagesizes
getpass getpassphrase
getpeerucred getpflags
getpgid getpgrp
getpid getpmsg
getppid getppriv
getpriority getprogname
getprojid
getpw getpwent
getpwent_r getpwnam
getpwnam_r getpwuid
getpwuid_r getrctl
getrlimit getrusage
gets getsid
getspent getspent_r
getspnam getspnam_r
getsubopt gettaskid
gettext gettimeofday
gettxt getuid
getusershell getustack
getutent getutid
getutline getutmp
getutmpx getutxent
getutxid getutxline
getvfsany getvfsent
getvfsfile getvfsspec
getw
getwc getwc_l
getwchar getwchar_l
getwd
getwidth getws
getzoneid getzoneidbyname
getzonenamebyid glob
globfree gmtime
gmtime_r grantpt
gsignal hasmntopt
hcreate hdestroy
hsearch iconv
iconv_close iconv_open
imaxabs imaxdiv
index initgroups
initstate innetgr
insque ioctl
is_system_labeled
isaexec
isalnum isalnum_l
isalpha isalpha_l
isascii isastream
isatty
isblank isblank_l
iscntrl iscntrl_l
isdigit isdigit_l
isenglish
isgraph isgraph_l
isideogram
islower islower_l
isnan
isnand isnanf
isnumber isphonogram
isprint isprint_l
ispunct ispunct_l
issetugid
isspace isspace_l
isspecial
isupper isupper_l
iswalnum iswalnum_l
iswalpha iswalpha_l
iswblank iswblank_l
iswcntrl iswcntrl_l
iswctype iswctype_l
iswdigit iswdigit_l
iswideogram iswideogram_l
iswgraph iswgraph_l
iswhexnumber iswhexnumber_l
iswlower iswlower_l
iswnumber iswnumber_l
iswphonogram iswphonogram_l
iswprint iswprint_l
iswpunct iswpunct_l
iswspace iswspace_l
iswspecial iswspecial_l
iswupper iswupper_l
iswxdigit iswxdigit_l
isxdigit isxdigit_l
jrand48 kill
killpg l64a
labs ladd
lchown lckpwdf
lcong48 ldexp
ldivide lexp10
lfind lfmt
link linkat
lio_listio llabs
lldiv llog10
llseek lltostr
localeconv localtime
localtime_r lockf
logb lone
longjmp lrand48
lsearch lseek
lshiftl lstat
lsub lten
lzero madvise
makecontext makeutx
malloc
mblen mblen_l
mbrlen mbrlen_l
mbrtowc mbrtowc_l
mbsinit mbsinit_l
mbsnrtowcs mbsnrtowcs_l
mbsrtowcs mbsrtowcs_l
mbstowcs mbstowcs_l
mbtowc mbtowc_l
memalign membar_consumer
membar_enter membar_exit
membar_producer memccpy
memchr memcmp
memcntl memcpy
meminfo memmem
memmove
memset mincore
mkdir mkdirat
mkfifo mkfifoat
mknod mknodat
mkstemp
mktemp mktime
mlock mlockall
mmap mmapobj
modctl
modf modff
modutx monitor
mount mprotect
mq_close mq_getattr
mq_notify mq_open
mq_receive mq_reltimedreceive_np
mq_reltimedsend_np mq_send
mq_setattr mq_timedreceive
mq_timedsend mq_unlink
mrand48 msgctl
msgget msgids
msgrcv msgsnap
msgsnd msync
munlock munlockall
munmap mutex_consistent
mutex_destroy mutex_init
mutex_lock mutex_trylock
mutex_unlock nanosleep
nextafter newlocale
nfs_getfh nftw
ngettext nice
nl_langinfo nl_langinfo_l
nrand48
nss_default_finders nss_delete
nss_endent nss_getent
nss_search nss_setent
ntp_adjtime ntp_gettime
open openat
opendir openlog
optarg opterr
optind optopt
p_online pathconf
pause pclose
pcsample perror
pfmt pipe
plock poll
popen port_alert
port_associate port_create
port_dissociate port_get
port_getn port_send
port_sendn posix_fadvise
posix_fallocate posix_madvise
posix_memalign posix_openpt
posix_spawn posix_spawn_file_actions_addclose
posix_spawn_file_actions_addclosefrom_np posix_spawn_file_actions_adddup2
posix_spawn_file_actions_addopen
posix_spawn_file_actions_destroy
posix_spawn_file_actions_init
posix_spawn_pipe_np
posix_spawnattr_destroy
posix_spawnattr_getflags posix_spawnattr_getpgroup
posix_spawnattr_getschedparam posix_spawnattr_getschedpolicy
posix_spawnattr_getsigdefault posix_spawnattr_getsigignore_np
posix_spawnattr_getsigmask posix_spawnattr_init
posix_spawnattr_setflags posix_spawnattr_setpgroup
posix_spawnattr_setschedparam posix_spawnattr_setschedpolicy
posix_spawnattr_setsigdefault posix_spawnattr_setsigignore_np
posix_spawnattr_setsigmask posix_spawnp
pread preadv
printf
printstack priocntl
priocntlset priv_addset
priv_allocset priv_copyset
priv_delset priv_emptyset
priv_fillset priv_freeset
priv_getbyname priv_getbynum
priv_getsetbyname priv_getsetbynum
priv_gettext priv_ineffect
priv_intersect priv_inverse
priv_isemptyset priv_isequalset
priv_isfullset priv_ismember
priv_issubset priv_set
priv_set_to_str priv_str_to_set
priv_union processor_bind
processor_info profil
pselect pset_assign
pset_bind pset_create
pset_destroy pset_getattr
pset_getloadavg pset_info
pset_list pset_setattr
psiginfo psignal
pthread_atfork pthread_attr_destroy
pthread_attr_get_np
pthread_attr_getdetachstate pthread_attr_getguardsize
pthread_attr_getinheritsched pthread_attr_getschedparam
pthread_attr_getschedpolicy pthread_attr_getscope
pthread_attr_getstack pthread_attr_getstackaddr
pthread_attr_getstacksize pthread_attr_init
pthread_attr_setdetachstate pthread_attr_setguardsize
pthread_attr_setinheritsched pthread_attr_setschedparam
pthread_attr_setschedpolicy pthread_attr_setscope
pthread_attr_setstack pthread_attr_setstackaddr
pthread_attr_setstacksize pthread_barrier_destroy
pthread_barrier_init pthread_barrier_wait
pthread_barrierattr_destroy pthread_barrierattr_getpshared
pthread_barrierattr_init pthread_barrierattr_setpshared
pthread_cancel pthread_cond_broadcast
pthread_cond_destroy pthread_cond_init
pthread_cond_reltimedwait_np pthread_cond_signal
pthread_cond_timedwait pthread_cond_wait
pthread_condattr_destroy pthread_condattr_getclock
pthread_condattr_getpshared pthread_condattr_init
pthread_condattr_setclock pthread_condattr_setpshared
pthread_create pthread_detach
pthread_equal pthread_exit
pthread_getconcurrency pthread_getschedparam
pthread_getspecific pthread_join
pthread_key_create pthread_key_create_once_np
pthread_key_delete
pthread_kill pthread_mutex_consistent
pthread_mutex_destroy pthread_mutex_getprioceiling
pthread_mutex_init pthread_mutex_lock
pthread_mutex_reltimedlock_np pthread_mutex_setprioceiling
pthread_mutex_timedlock pthread_mutex_trylock
pthread_mutex_unlock pthread_mutexattr_destroy
pthread_mutexattr_getprioceiling pthread_mutexattr_getprotocol
pthread_mutexattr_getpshared pthread_mutexattr_getrobust
pthread_mutexattr_gettype pthread_mutexattr_init
pthread_mutexattr_setprioceiling pthread_mutexattr_setprotocol
pthread_mutexattr_setpshared pthread_mutexattr_setrobust
pthread_mutexattr_settype pthread_once
pthread_rwlock_destroy pthread_rwlock_init
pthread_rwlock_rdlock pthread_rwlock_reltimedrdlock_np
pthread_rwlock_reltimedwrlock_np pthread_rwlock_timedrdlock
pthread_rwlock_timedwrlock pthread_rwlock_tryrdlock
pthread_rwlock_trywrlock pthread_rwlock_unlock
pthread_rwlock_wrlock pthread_rwlockattr_destroy
pthread_rwlockattr_getpshared pthread_rwlockattr_init
pthread_rwlockattr_setpshared pthread_self
pthread_setcancelstate pthread_setcanceltype
pthread_setconcurrency pthread_setspecific
pthread_sigmask pthread_setschedparam
pthread_setschedprio pthread_spin_destroy
pthread_spin_init pthread_spin_lock
pthread_spin_trylock pthread_spin_unlock
pthread_testcancel ptsname
putacct putc
putc_unlocked putchar
putchar_unlocked putenv
putmsg putpmsg
putpwent puts
putspent pututline
pututxline putw
putwc putwchar
putws pwrite
pwritev
qeconvert qecvt
qfconvert qfcvt
qgconvert qgcvt
qsort quadruple_to_decimal
raise rand
rand_r random
rctl_walk rctlblk_get_enforced_value
rctlblk_get_firing_time rctlblk_get_global_action
rctlblk_get_global_flags rctlblk_get_local_action
rctlblk_get_local_flags rctlblk_get_privilege
rctlblk_get_recipient_pid rctlblk_get_value
rctlblk_set_local_action rctlblk_set_local_flags
rctlblk_set_privilege rctlblk_set_recipient_pid
rctlblk_set_value rctlblk_size
re_comp re_exec
read readdir
readdir_r readlink
readlinkat
readv realloc
realpath reboot
regcmp regcomp
regerror regex
regexec regfree
remove remque
rename renameat
resetmnttab resolvepath
rewind rewinddir
rindex rmdir
rw_rdlock rw_read_held
rw_tryrdlock rw_trywrlock
rw_unlock rw_write_held
rw_wrlock rwlock_destroy
rwlock_init sbrk
scalb scandir
scanf sched_get_priority_max
sched_get_priority_min sched_getparam
sched_getscheduler sched_rr_get_interval
sched_setparam sched_setscheduler
sched_yield schedctl_exit
schedctl_init schedctl_lookup
schedctl_start schedctl_stop
seconvert seed48
seekdir select
sem_close sem_destroy
sem_getvalue sem_init
sem_open sem_post
sem_reltimedwait_np sem_timedwait
sem_trywait sem_unlink
sem_wait
sema_destroy sema_held
sema_init sema_post
sema_trywait sema_wait
semctl semget
semids semop
semtimedop setattrat
setbuf
setbuffer setcat
setcontext setegid
setenv seteuid
setgid setgrent
setgroups sethostname
setitimer setjmp
setkey setlabel
setlinebuf setlocale
setlogmask setnetgrent
setpflags setpgid
setpgrp setppriv
setpriority setprogname
setpwent
setrctl setregid
setreuid setrlimit
setsid setspent
setstate settaskid
settimeofday setuid
setusershell setustack
setutent setutxent
setvbuf sfconvert
sgconvert shm_open
shm_unlink shmat
shmctl shmdt
shmget shmids
sig2str sigaction
sigaddset sigaltstack
sigdelset sigemptyset
sigfillset sigfpe
sighold sigignore
siginterrupt sigismember
siglongjmp signal
sigpause sigpending
sigprocmask sigqueue
sigrelse
sigsend sigsendset
sigset sigsetjmp
sigstack sigsuspend
sigtimedwait sigwait
sigwaitinfo single_to_decimal
sleep smt_pause
snprintf
sprintf srand
srand48 srandom
sscanf ssignal
stack_getbounds stack_inbounds
stack_setbounds stack_violation
stat statfs
statvfs stime
str2sig
strcasecmp strcasecmp_l
strcat strchr
strcmp strcoll
strcpy strcspn
strdup strerror
strerror_l strerror_r
strfmon strfmon_l
strftime strftime_l
string_to_decimal
strlcat strlcpy
strlen strncasecmp
strncasecmp_l strncat
strncmp strncpy
strnstr strpbrk
strptime strptime_l
strrchr strsep
strsignal strspn
strstr strtod
strtof strtoimax
strtok strtok_r
strtol strtold
strtoll strtoul
strtoull strtoumax
strtows strxfrm
swab swapcontext
swapctl swprintf
swscanf symlink
symlinkat
sync sync_instruction_memory
sysconf sysfs
sysinfo syslog
system tcdrain
tcflow tcflush
tcgetattr tcgetpgrp
tcgetsid tcsendbreak
tcsetattr tcsetpgrp
tdelete tell
telldir tempnam
textdomain tfind
thr_continue thr_create
thr_exit thr_getconcurrency
thr_getprio thr_getspecific
thr_join thr_keycreate
thr_keycreate_once
thr_kill thr_main
thr_min_stack thr_self
thr_setconcurrency thr_setprio
thr_setspecific thr_sigsetmask
thr_stksegment thr_suspend
thr_yield time
timer_create timer_delete
timer_getoverrun timer_gettime
timer_settime
times timezone
tmpfile tmpnam
tmpnam_r toascii
tolower tolower_l
toupper toupper_l
towctrans towctrans_l
towlower towlower_l
towupper towupper_l
truncate
tsearch ttyname
ttyname_r ttyslot
twalk tzname
tzset u8_strcmp
u8_textprep_str u8_validate
uadmin
ualarm uconv_u16tou32
uconv_u16tou8 uconv_u32tou16
uconv_u32tou8 uconv_u8tou16
uconv_u8tou32 ucred_free
ucred_get ucred_getegid
ucred_geteuid ucred_getgroups
ucred_getpflags ucred_getpid
ucred_getprivset ucred_getprojid
ucred_getrgid ucred_getruid
ucred_getsgid ucred_getsuid
ucred_getzoneid ucred_size
ulckpwdf ulimit
ulltostr umask
umount umount2
uname ungetc
ungetwc unlink
unlinkat unlockpt
unordered unsetenv
updwtmp updwtmpx
uselocale
usleep ustat
utime utimensat
utimes utmpname
utmpxname uucopy
valloc vasprintf
verr verrx
vfork vforkx
vfprintf vfscanf
vfwprintf vfwscanf
vhangup vlfmt
vpfmt vprintf
vscanf vsnprintf
vsprintf vsscanf
vswprintf vswscanf
vsyslog vwarn
vwarnx vwprintf
vwscanf wait
wait3 wait4
waitid waitpid
walkcontext warn
warnx watoll
wcpcpy wcpncpy
wcrtomb wcrtomb_l
wcscasecmp wcscasecmp_l
wcscat
wcschr wcscmp
wcscoll wcscoll_l
wcscpy wcscspn
wcsdup wcsftime
wcslen wcsncat
wcsncasecmp wcsncasecmp_l
wcsncmp wcsncpy
wcsnrtombs wcsnrtombs_l
wcspbrk wcsrchr
wcsrtombs wcsrtombs_l
wcsspn
wcsstr wcstod
wcstof wcstoimax
wcstok wcstol
wcstold wcstoll
wcstombs wctombs_l
wcstoul
wcstoull wcstoumax
wcswcs
wcswidth wcswidth_l
wcsxfrm wcsxfrm_l
wctob wctob_l
wctomb wctomb_l
wctrans wctrans_l
wctype wctype_l
wcwidth wcwidth_l
wmemchr wmemcmp
wmemcpy wmemmove
wmemset wordexp
wordfree wprintf
wracct write
writev wscanf
wscasecmp wscat
wschr wscmp
wscol wscoll
wscpy wscspn
wsdup wslen
wsncasecmp wsncat
wsncmp wsncpy
wspbrk wsprintf
wsrchr wsscanf
wsspn wstod
wstok wstol
wstoll wstostr
wsxfrm yield

The following interfaces are unique to the 32-bit version of this library:

__div64 __mul64
__posix_readdir_r __rem64
__udiv64 __urem64
_bufendtab _lastbuf
_s_fcntl _sys_nsig
_xftw64 aio_cancel64
aio_error64 aio_fsync64
aio_read64 aio_return64
aio_suspend64 aio_waitn64
aio_write64 creat64
fgetpos64 fopen64
freopen64 fseeko64
fsetpos64 fstat64
fstatvfs64 ftello64
ftruncate64 ftw64
getdents64 getrlimit64
lio_listio64 lockf64
lseek64 lstat64
mkstemp64 mmap64
nftw64 open64
pread64 preadv64
ptrace pwrite64
pwritev64 readdir64
readdir64_r s_fcntl
s_ioctl select_large_fdset
setrlimit64 stat64
statvfs64 sys_errlist
sys_nerr tell64
tmpfile64 truncate64

The following interfaces are unique to the 32-bit SPARC version of this library:

.div .mul
.rem .stret1
.stret2 .stret4
.stret8 .udiv
.umul .urem
_Q_add _Q_cmp
_Q_cmpe _Q_div
_Q_dtoq _Q_feq
_Q_fge _Q_fgt
_Q_fle _Q_flt
_Q_fne _Q_itoq
_Q_lltoq _Q_mul
_Q_neg _Q_qtod
_Q_qtoi _Q_qtoll
_Q_qtos _Q_qtou
_Q_qtoull _Q_sqrt
_Q_stoq _Q_sub
_Q_ulltoq _Q_utoq
__dtoll __dtou
__dtoull __ftoll
__ftou __ftoull
__umul64

The following interfaces are unique to the 32-bit x86 version of this library:

__fpstart _fp_hw
_fpstart _fxstat
_lxstat _nuname
_thr_errno_addr _xmknod
_xstat nuname

The following interfaces are unique to the 64-bit SPARC version of this library:

_Qp_add _Qp_cmp
_Qp_cmpe _Qp_div
_Qp_dtoq _Qp_feq
_Qp_fge _Qp_fgt
_Qp_fle _Qp_flt
_Qp_fne _Qp_itoq
_Qp_mul _Qp_neg
_Qp_qtod _Qp_qtoi
_Qp_qtos _Qp_qtoui
_Qp_qtoux _Qp_qtox
_Qp_sqrt _Qp_stoq
_Qp_sub _Qp_uitoq
_Qp_uxtoq _Qp_xtoq
__align_cpy_1 __align_cpy_16
__align_cpy_2 __align_cpy_4
__align_cpy_8 __dtoul
__ftoul __sparc_utrap_install

/lib/libc.so.1
shared object

/lib/64/libc.so.1

64-bit shared object

/lib/c_synonyms.so.1

A compatibility library to provide access to obsolete libc synonym symbols

/lib/64/c_synonyms.so.1

A 64-bit compatibility library to provide access to obsolete libc synonym symbols

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
MT-Level Safe

pvs(1), Intro(2), Intro(3), attributes(5), lf64(5), standards(5)

The synonyms compatibility library, c_synonyms.so.1, provides a mechanism to support old applications and libraries that were mistakenly built using now-obsolete synonym symbols from libc.

Before the advent of direct binding (-B direct) libc provided many functions with two names. For example, getpwent() and _getpwent(). These two names referred to exactly the same function in libc. The leading-underscore symbol was intended to be used by system libraries in order to avoid conflicting with an application that might define its own version of getpwent() with completely different semantics. Standard-conforming applications may not define and use function names with leading underscores.

illumos system libraries are now built with direct binding. This means that a system library that calls getpwent() will bind directly to the instance of getpwent() in libc, even if the application to which it is linked defines a different getpwent() for its own use. The application binds to its instance of getpwent() and there is no resulting conflict. The direct binding mechanism is equally available to libraries not delivered with illumos.

As a result of this evolution, most of the leading-underscore synonym symbols have been removed from libc. This means that applications that call these now-obsolete function names will cease to work. They will typically draw the error:


$ ./application
ld.so.1: fatal: relocation error: symbol _getpwent:
referenced symbol not found
Killed

All of the old leading-underscore symbols have been copied to the synonyms compatibility library. This library simply redirects the calls to the non-underscore instances of the corresponding functions in libc. Use it as a pre-loaded object:


$ LD_PRELOAD=c_synonyms.so.1 ./application

The synonyms compatibility library is intended neither to enable the generation of applications that call the obsolete leading-underscore synonym functions, nor to endorse this particular programming practice.

December 10, 2015