List of multithreaded programming subroutines

Programming in a multithreaded environment requires reentrant subroutines to ensure data integrity.

Use the following subroutines rather than the non-reentrant version:

Subroutine Description
asctime_r Converts a time value into a character array
getgrnam_r Returns the next group entry in the user database that matches a specific name
getpwuid_r Returns the next entry that matches a specific user ID in the use database
The following lists the non-reentrant subroutines in libc.
Subroutine Description
asctime getgrent gsignal setkey
auditread getgrgid hcreate setlogmask
closelog getgrnam hdestroy setnetent
crypt getgroupsbyuser hsearch setnetgrent
ctime getgrset inet_ntoa setprotoent
dirname gethostbyaddr initstate setpwent
drand48 gethostbyname innetgr setpwfile
ecvt gethostent iso_addr setrpcent
endttyent getlogin iso_ntoa setservent
encrypt getnetbyaddr jrand48 setstate
asctime getnetbyname l64a setttyent
endfsent getnetent lcong48 setutent
endfsent getnetgrent link_ntoa setutxent
endgrent getopt localtime srand48
endhostent getprotobyname lrand48 srandom
endnetent getprotobynumber mrand48 ssignal
endnetgrent getprotoent mtime strerror
endprotoent getpwent ndutent strtok
endpwent getpwnam nrand48 syslog
endrpcent getpwuid ns_ntoa ttyname
endservent getrpcbyname openlog utmpname
endttyent getrpcbynumber pututline wcstok
endutxent getrpcent pututxline  
erand48 getservbyname rand  
ether_aton getservbyport random  
ether_ntoa getservent rcmd  
fcvt fgetgrent getttyent rcmd2  
fgetpwent getttynam readdir  
getdate getuinfo rexec  
getfsent getutent re_comp  
getfsent getutid re_exec  
getfsfile getutline seed48  
getfsfile getutxent setfsent  
getfsspec getutxid setgrent  
getfstype getutxline sethostent