以下是可能应该添加到 man-pages 集合中的页面列表。如果您正在考虑编写其中一个或多个页面,那么
系统调用 |
自 内核 |
注释 |
endian_switch(2) | 2.6.26 | POWER 6 特定 |
sys_debug_setcontext(2) | 2.6.11 | 如果启用了 CONFIG_POWERPC 内核配置选项,则为 PowerPC |
没有针对 /sys 文件系统的手册页:可能应该有一个类似于 proc(5) 的 sys(5) 页面。内核源文件 Documentation/filesystems/sysfs.txt 为此页面提供了一个起点;另请参阅 Documentation/ 目录下的许多其他 *sysfs*.txt 文件。
GNU C 库提供了一些命令(可执行文件、脚本),例如 ldd(1) 和 time(1)。这些命令在 man-pages 的第 1 节和第 8 节中进行了记录。至少缺少以下页面
命令 |
自 glibc 版本 |
注释 |
gencat(1) | ||
getconf(1) | ||
makedb(1) | ||
rpcgen(1) | ||
utmpdump(1) |
下面列出了未记录的 (GNU) C 库函数。像以下这样的搜索可能会建议其他需要记录的函数
MPDIR=~/man-pages # Directory containing uncompressed man-pages GLIBCDIR=/SOME_DIR # Directory containing glibc tree for f in $(cat $(find $GLIBCDIR -name Versions | egrep -v '/(hurd|mach)/') | egrep -v '({|}|^%)' | sed -e 's/#.*//' | tr ';' '\012' | sed 's/^ *//' | grep -v '^[_.]' | sort -u); do if ! test -f "$MPDIR/man3/$f.3" > /dev/null 2>&1 && ! test -f "$MPDIR/man2/$f.2" > /dev/null 2>&1 ; then echo $f; fi done
或者,可以查看特定库导出的文本符号(除非库符号已被剥离),以查看是否有相应的手册页。这里,使用 libm 的示例
nm -D /lib/libm.so.6 | sed -re '/^[0-9a-f]* T /!d; s///; /^_/d' | xargs whatis | sed -ne 's/: nothing appropriate\.$//p' | sort -u
在许多情况下,下面列出的接口是使用此类脚本找到的,并且尚未检查这些接口是否是可能最好不记录的过时接口。
函数 |
自 glibc 版本 |
注释 |
mallwatch(3)
tr_break(3) (?) |
想法是在调试器中,我们将 'mallwatch' 设置为 malloc 函数返回的地址,在 tr_break() (在 glibc 中定义)上设置断点,然后继续执行。当 malloc 操作触及 'mallwatch' 引用的地址时,将执行断点。必须使用 mtrace() 来安装必要的 malloc 挂钩。 | |
quick_exit(3) at_quick_exit(3) | 2.10 | 请参阅 https://udrepper.livejournal.com/20948.html 和 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm。在 C11 中标准化。 |
res_ninit(3)
res_nmkquery(3) res_nquery(3) res_nquerydomain(3) res_nsearch(3) res_nsend(3) res_nclose(3) res_gethostbyaddr(3) res_gethostbyname(3) res_gethostbyname2(3) res_send_setqhook(3) res_send_setrhook(3) |
2.8 | 也许应该在 resolver(3) 页面上记录。 |
iswalnum_l(3)
iswalpha_l(3) iswblank_l(3) iswcntrl_l(3) iswctype_l(3) iswdigit_l(3) iswgraph_l(3) iswlower_l(3) iswprint_l(3) iswpunct_l(3) iswspace_l(3) iswupper_l(3) iswxdigit_l(3) isxdigit_l(3) strcasecmp_l(3) strcoll_l(3) strfmon_l(3) strftime_l(3) strncasecmp_l(3) strptime_l(3) strtod_l(3) strtof_l(3) strtol_l(3) strtold_l(3) strtoll_l(3) strtoul_l(3) strtoull_l(3) strxfrm_l(3) toascii_l(3) towctrans_l(3) wcscasecmp_l(3) wcscoll_l(3) wcsftime_l(3) wcsncasecmp_l(3) wcstod_l(3) wcstof_l(3) wcstol_l(3) wcstold_l(3) wcstoll_l(3) wcstoul_l(3) wcstoull_l(3) wcsxfrm_l(3) wctrans_l(3) wctype_l(3) |
区域设置函数 -- 请参阅 POSIX.1-2008 规范 在大多数情况下,这些函数可以集成到相应传统函数的现有手册页中。有关需要完成的操作示例,请参阅 isalpha(3)、toupper(3)、towlower(3) 和 towupper(3) 手册页(特别是,请参阅 man-pages-3.63 中所做的更改)。 toascii_l(3) 是非标准的,并且具有不同的 FTM 要求。其他一些函数可能也是如此。 |
|
endsgent(3)
fgetsgent(3) fgetsgent_r(3) getsgent(3) getsgent_r(3) getsgnam(3) getsgnam_r(3) putsgent(3) setsgent(3) sgetsgent(3) sgetsgent_r(3) |
2.10 | 影子组文件函数,类似于影子密码文件函数 |
advance(3)
step(3) loc1(3)、loc2(3)、locs(3) re_compile_fastmap(3) re_compile_pattern(3) re_match(3) re_match_2(3) re_max_failures(3) re_search(3) re_search_2(3) re_set_registers(3) re_set_syntax(3) re_syntax_options(3) |
||
gamma_r(3)
gammaf_r(3) gammal_r(3) |
||
inet_neta(3)
inet_nsap_addr(3) inet_nsap_ntoa(3) |
||
parse_printf_format(3)
register_printf_function(3) register_printf_modifier(3) register_printf_specifier(3) register_printf_type(3) |
2.0 | 有 info 页面,并且 <printf.h> 包含有用的信息。 |
printf_size() printf_size_info() | 2.1 | 有 info 页面,并且 <printf.h> 包含有用的信息。 |
clntunix_create(3)
getnetname(3) netname(3) getpublickey(3) getsecretkey(3) key_decryptsession_pk(3) key_encryptsession_pk(3) key_get_conv(3) key_setnet(3) rpc_createerr(3) rpc_createerr(3) svc_exit(3) svc_fdset(3) svc_getreq_common(3) svc_getreq_poll(3) svc_max_pollfd(3) svc_pollfd(3) svcauthdes_stats(3) svcudp_enablecache(3) svcunix_create(3) svcunixfd_create(3) |
||
authdes_create(3)
authdes_getucred(3) authdes_pk_create(3) |
||
getipv4sourcefilter(3)
getsourcefilter(3) setipv4sourcefilter(3) setsourcefilter(3) |
||
idna_to_ascii_lz(3)
idna_to_unicode_lzlz(3) |
在版本文件中是否未列出其他各种“idna”函数? | |
moncontrol(3)
monstartup(3) profil_counter(3) sprofil(3) |
||
glob_pattern_p(3) | 需要 _GNU_SOURCE | |
rexecoptions(3)
ruserpass(3) |
不在 glibc 2.12 标头中? | |
h_errlist(3)
h_nerr(3) |
不在 glibc 2.12 标头中?可能已弃用。 | |
host2netname(3)
netname2host(3) netname2user(3) user2netname(3) |
||
isctype(3) | 需要 _GNU_SOURCE | |
ns_datetosecs(3)
ns_format_ttl(3) ns_get16(3) ns_get32(3) ns_initparse(3) ns_makecanon(3) ns_msg_getflag(3) ns_name_compress(3) ns_name_ntol(3) ns_name_ntop(3) ns_name_pack(3) ns_name_pton(3) ns_name_rollback(3) ns_name_skip(3) ns_name_uncompress(3) ns_name_unpack(3) ns_parse_ttl(3) ns_parserr(3) ns_put16(3) ns_put32(3) ns_samedomain(3) ns_samename(3) ns_skiprr(3) ns_sprintrr(3) ns_sprintrrf(3) ns_subdomain(3) |
||
c16rtomb(3)
c32rtomb(3) mbrtoc16(3) mbrtoc32(3) |
2.16 | |
timespec_get(3) | 2.16 | 新的 C11 函数,需要 _ISOC11_SOURCE |
timespec_getres(3) | 2.34 | 新的 C2X 函数,需要 _ISOC2X_SOURCE |
obstack_alloc_failed_handler(3)
obstack_exit_failure(3) obstack_free(3) obstack_printf(3) obstack_vprintf(3) open_obstack_stream(3) |
||
inet6_opt_append(3)
inet6_opt_find(3) inet6_opt_finish(3) inet6_opt_get_val(3) inet6_opt_init(3) inet6_opt_next(3) inet6_opt_set_val(3) inet6_option_alloc(3) inet6_option_append(3) inet6_option_find(3) inet6_option_init(3) inet6_option_next(3) inet6_option_space(3) inet6_rth_add(3) inet6_rth_getaddr(3) inet6_rth_init(3) inet6_rth_reverse(3) inet6_rth_segments(3) inet6_rth_space(3) |
||
nis_add(3)
nis_add_entry(3) nis_addmember(3) nis_checkpoint(3) nis_clone_directory(3) nis_clone_object(3) nis_clone_result(3) nis_creategroup(3) nis_destroy_object(3) nis_destroygroup(3) nis_dir_cmp(3) nis_domain_of(3) nis_domain_of_r(3) nis_first_entry(3) nis_free_directory(3) nis_free_object(3) nis_free_request(3) nis_freenames(3) nis_freeresult(3) nis_freeservlist(3) nis_freetags(3) nis_getnames(3) nis_getservlist(3) nis_ismember(3) nis_leaf_of(3) nis_leaf_of_r(3) nis_lerror(3) nis_list(3) nis_local_directory(3) nis_local_group(3) nis_local_host(3) nis_local_principal(3) nis_lookup(3) nis_mkdir(3) nis_modify(3) nis_modify_entry(3) nis_name_of(3) nis_name_of_r(3) nis_next_entry(3) nis_perror(3) nis_ping(3) nis_print_directory(3) nis_print_entry(3) nis_print_group(3) nis_print_group_entry(3) nis_print_link(3) nis_print_object(3) nis_print_result(3) nis_print_rights(3) nis_print_table(3) nis_read_obj(3) nis_remove(3) nis_remove_entry(3) nis_removemember(3) nis_rmdir(3) nis_servstate(3) nis_sperrno(3) nis_sperror(3) nis_sperror_r(3) nis_stats(3) nis_verifygroup(3) nis_write_obj(3) |
||
yp_all(3)
yp_bind(3) yp_first(3) yp_get_default_domain(3) yp_maplist(3) yp_master(3) yp_match(3) yp_next(3) yp_order(3) yp_unbind(3) yp_update(3) ypbinderr_string(3) yperr_string(3) ypprot_err(3) |
||
xdr_authdes_cred(3)
xdr_authdes_verf(3) xdr_cback_data(3) xdr_cryptkeyarg(3) xdr_cryptkeyarg2(3) xdr_cryptkeyres(3) xdr_des_block(3) xdr_domainname(3) xdr_getcredres(3) xdr_hyper(3) xdr_int16_t(3) xdr_int32_t(3) xdr_int64_t(3) xdr_int8_t(3) xdr_key_netstarg(3) xdr_key_netstres(3) xdr_keybuf(3) xdr_keydat(3) xdr_keystatus(3) xdr_longlong_t(3) xdr_mapname(3) xdr_netnamestr(3) xdr_netobj(3) xdr_obj_p(3) xdr_peername(3) xdr_quad_t(3) xdr_rmtcall_args(3) xdr_rmtcallres(3) xdr_sizeof(3) xdr_u_hyper(3) xdr_u_longlong_t(3) xdr_u_quad_t(3) xdr_uint16_t(3) xdr_uint32_t(3) xdr_uint64_t(3) xdr_uint8_t(3) xdr_unixcred(3) xdr_valdat(3) xdr_yp_buf(3) xdr_ypall(3) xdr_ypbind_binding(3) xdr_ypbind_resp(3) xdr_ypbind_resptype(3) xdr_ypbind_setdom(3) xdr_ypdelete_args(3) xdr_ypmap_parms(3) xdr_ypmaplist(3) xdr_yppush_status(3) xdr_yppushresp_xfr(3) xdr_ypreq_key(3) xdr_ypreq_nokey(3) xdr_ypreq_xfr(3) xdr_ypresp_all(3) xdr_ypresp_key_val(3) xdr_ypresp_maplist(3) xdr_ypresp_master(3) xdr_ypresp_order(3) xdr_ypresp_val(3) xdr_ypresp_xfr(3) xdr_ypstat(3) xdr_ypupdate_args(3) xdr_ypxfrstat(3) |
||
td_init(3)
td_log(3) td_symbol_list(3) td_ta_clear_event(3) td_ta_delete(3) td_ta_enable_stats(3) td_ta_event_addr(3) td_ta_event_getmsg(3) td_ta_get_nthreads(3) td_ta_get_ph(3) td_ta_get_stats(3) td_ta_map_id2thr(3) td_ta_map_lwp2thr(3) td_ta_new(3) td_ta_reset_stats(3) td_ta_set_event(3) td_ta_setconcurrency(3) td_ta_thr_iter(3) td_ta_tsd_iter(3) td_thr_clear_event(3) td_thr_dbresume(3) td_thr_dbsuspend(3) td_thr_event_enable(3) td_thr_event_getmsg(3) td_thr_get_info(3) td_thr_getfpregs(3) td_thr_getgregs(3) td_thr_getxregs(3) td_thr_getxregsize(3) td_thr_set_event(3) td_thr_setfpregs(3) td_thr_setgregs(3) td_thr_setprio(3) td_thr_setsigpending(3) td_thr_setxregs(3) td_thr_sigsetmask(3) td_thr_tls_get_addr(3) td_thr_tlsbase(3) td_thr_tsd(3) td_thr_validate(3) |
libthread | |
ntp_gettimex(3) | 2.12 | |
argp_error(3)
argp_err_exit_status(3) (变量) argp_failure(3) argp_help(3) argp_parse(3) argp_program_bug_address(3) argp_program_version(3) argp_program_version_hook(3) argp_state_help(3) argp_usage(3) |
这里有一些信息页面。 | |
posix_spawnattr_destroy(3)
posix_spawnattr_getflags(3) posix_spawnattr_getpgroup(3) posix_spawnattr_getschedparam(3) posix_spawnattr_getschedpolicy(3) posix_spawnattr_getsigdefault(3) posix_spawnattr_getsigmask(3) posix_spawnattr_init(3) posix_spawnattr_setflags(3) posix_spawnattr_setpgroup(3) posix_spawnattr_setschedparam(3) posix_spawnattr_setschedpolicy(3) posix_spawnattr_setsigdefault(3) posix_spawnattr_setsigmask(3) posix_spawn_file_actions_addclose(3) posix_spawn_file_actions_adddup2(3) posix_spawn_file_actions_addopen(3) posix_spawn_file_actions_destroy(3) posix_spawn_file_actions_init(3) |
||
posix_spawn_file_actions_addchdir_np(3)
posix_spawn_file_actions_addfchdir_np(3) |
glibc 2.29 中的新增功能。 | |
C11 线程函数 | ||
thrd_detach()
thrd_exit() thrd_join() mtx_init() mtx_lock() mtx_timedlock() mtx_trylock() mtx_unlock() mtx_destroy() call_once() cnd_broadcast() cnd_destroy() cnd_init() cnd_signal() cnd_timedwait() cnd_wait() tss_create() tss_delete() tss_get() tss_set() |
glibc 2.28 中的新增功能。 | |
各种宽字符函数 (括号中提及它们的传统等效项) |
||
wscanf(3) (scanf(3)) fwscanf(3) (fscanf(3)) swscanf(3) (sscanf(3)) vfwscanf(3) (vfscanf(3)) vswscanf(3) (vsscanf(3)) wcschrnul(3) (strchrnul(3)) wcscoll(3) (strcoll(3)) wcsftime(3) (strftime(3)) wcstod(3) (strtod(3)) wcstof(3) (strtof(3)) wcstold(3) (strtold(3)) wcstol(3) (atol(3)) wcstol(3) (strtol(3)) wcstoul(3) (strtoul(3)) wcstoll(3) (strtoll(3)) wcstoull(3) (strtoull(3)) wcstoq(3) (atoq(3)) wcstoq(3) (strtoq(3)) wcstouq(3) (strtouq(3)) wcswcs(3) (strstr(3)) wcsxfrm(3) (strxfrm(3)) |
在这些手册页编写完成后,将传统函数的手册页中的“另请参阅”条目添加到描述其宽字符等效项的手册页中。 | |
wmemrtombs(3) | ||
swscanf(3)
vfwscanf(3) vswscanf(3) vwscanf(3) wscanf(3) |
||
fesetexcept()
fetestexceptflag() fegetmode() fesetmode() |
2.25 | 来自 ISO/IEC TS 18661-1:2014 的新 libm 函数 |
roundeven()
roundevenf() roundevenl() fromfp() fromfpf() fromfpl() ufromfp() ufromfpf() ufromfpl() fromfpx() fromfpxf() fromfpxl() ufromfpx() ufromfpxf() ufromfpxl() |
2.25 | 来自 ISO/IEC TS 18661-1:2014 的新 libm(最接近整数)函数 |
llogb()
llogbf() llogbl() |
2.25 | 来自 ISO/IEC TS 18661-1:2014 的新 libm 函数 |
fmaxmag()
fmaxmagf() fmaxmagl() fminmag() fminmagf() fminmagl() |
2.25 | 来自 ISO/IEC TS 18661-1:2014 的新 libm(最大-最小幅度)函数 |
iseqsig() | 2.25 | 来自 ISO/IEC TS 18661-1:2014 的新 libm 比较宏 |
iscanonical()
issubnormal() iszero() |
2.25 | 来自 ISO/IEC TS 18661-1:2014 的新 libm 分类宏 |
totalorder()
totalorderf() totalorderl() totalordermag() totalordermagf() totalordermagl() |
2.25 | 来自 ISO/IEC TS 18661-1:2014 的新 libm(总顺序)函数 |
canonicalize()
canonicalizef() canonicalizel() |
2.25 | 来自 ISO/IEC TS 18661-1:2014 的新 libm (canonicalize) 函数 |
getpayload()
getpayloadf() getpayloadl() setpayload() setpayloadf() setpayloadl() setpayloadsig() setpayloadsigf() setpayloadsigl() |
2.25 | 来自 ISO/IEC TS 18661-1:2014 的新 libm (Nan) 函数 |
最后但同样重要的是 POSIX 线程 API。请注意,glibc 提供了一组现有的、过时的页面,这些页面记录了旧的 LinuxThreads 实现。(这些页面是在允许重用的许可下编写的,因此它们包含的一些材料可以在新页面中使用。)
需要的是一组文档完整 API 的页面,描述 LinuxThreads 和 NPTL 与标准不同的细节。现有的 pthreads(7) 手册页提供了 Linux 上 Pthreads 实现的概述,旨在作为这些手册页的背景文档。
所需的手册页列表很长(相关函数可以分组在单个页面上);标有更多星号的页面可能最希望首先完成。
函数 |
自 glibc 版本 |
注释 |
pthread_barrierattr_destroy(3) | ||
pthread_barrierattr_getpshared(3) | ||
pthread_barrierattr_init(3) | ||
pthread_barrierattr_setpshared(3) | ||
pthread_barrier_destroy(3) | ||
pthread_barrier_init(3) | ||
pthread_barrier_wait(3) | ||
pthread_clockjoin_np(3) | 2.31 | |
pthread_condattr_destroy(3) | ||
pthread_condattr_getclock(3) | ||
pthread_condattr_getpshared(3) | ||
pthread_condattr_init(3) | ||
pthread_condattr_setclock(3) | ||
pthread_condattr_setpshared(3) | ||
pthread_cond_broadcast(3) | ** | |
pthread_cond_clockwait(3) | 2.30 | |
pthread_cond_destroy(3) | ** | |
pthread_cond_init(3) | ** | |
pthread_cond_signal(3) | ** | |
pthread_cond_timedwait(3) | ** | |
pthread_cond_wait(3) | ** | |
pthread_getconcurrency(3) | ||
pthread_getspecific(3), pthread_setspecific(3) | ** | |
pthread_key_create(3) | ** | |
pthread_key_delete(3) | ** | |
pthread_mutexattr_destroy(3) | ||
pthread_mutexattr_gettype(3) | ||
pthread_mutexattr_init(3) | ||
pthread_mutexattr_settype(3) | ||
pthread_mutexattr_getprotocol(3) | 2.4 | |
pthread_mutexattr_setprotocol(3) | 2.4 | |
pthread_mutexattr_getprioceiling(3) | 2.4 | |
pthread_mutexattr_setprioceiling(3) | 2.4 | |
pthread_mutex_getprioceiling(3) | 2.4 | |
pthread_mutex_setprioceiling(3) | 2.4 | |
pthread_mutex_clocklock(3) | 2.30 | |
pthread_mutex_destroy(3) | ** | |
pthread_mutex_init(3) | ** | |
pthread_mutex_lock(3) | ** | |
pthread_mutex_timedlock(3) | ** | |
pthread_mutex_trylock(3) | ** | |
pthread_mutex_unlock(3) | ** | |
pthread_rwlockattr_destroy(3) | ||
pthread_rwlockattr_getpshared(3) | ||
pthread_rwlockattr_init(3) | ||
pthread_rwlockattr_setpshared(3) | ||
pthread_rwlock_destroy(3) | ||
pthread_rwlock_clockrdlock(3) | 2.30 | |
pthread_rwlock_clockwrlock(3) | 2.30 | |
pthread_rwlock_init(3) | ||
pthread_rwlock_rdlock(3) | ||
pthread_rwlock_timedrdlock(3) | ||
pthread_rwlock_timedwrlock(3) | ||
pthread_rwlock_tryrdlock(3) | ||
pthread_rwlock_trywrlock(3) | ||
pthread_rwlock_unlock(3) | ||
pthread_rwlock_wrlock(3) | ||
sem_clockwait(3) | 2.30 |