多线程编程子例程的列表
在多线程环境中编程需要重入子例程以确保数据完整性。
请使用下面的子例程而不是其非重入版本:
| 子例程 | 描述 |
|---|---|
| asctime_r | 将时间值转换为字符数组 |
| getgrnam_r | 返回用户数据库中与特定的名称匹配的下一个组条目 |
| getpwuid_r | 返回使用数据库中与特定的用户标识匹配的下一个条目 |
下面列示了 libc 中的非重入子例程。
| 子例程 | 描述 | ||
|---|---|---|---|
| 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 |