Linux man-pages:   home   ||   git | readme | contributing | conventions   |   mailing list | archives   |   releases | book | online pages

Manual pages that are missing from Linux man-pages

Below is a list of pages that probably should be added to the man-pages set. If you are thinking of writing one or more of these pages, then:

System Calls

System call Since
kernel
Notes
endian_switch(2) 2.6.26 POWER 6 specific
sys_debug_setcontext(2) 2.6.11 PowerPC if CONFIG_POWERPC kernel config option is enabled

/sys file system

There is no man page for the /sys file system: there probably should be a sys(5) page similar to proc(5). The kernel source file Documentation/filesystems/sysfs.txt provides a starting point for this page; see also the many other *sysfs*.txt files under the Documentation/ directory.

GNU C library commands

The GNU C library provides a few commands (executables, scripts), such as ldd(1) and time(1). These commands are documented in man-pages, in sections 1 and 8. At least the following pages are missing:

Command Since glibc
version
Notes
gencat(1)    
getconf(1)    
makedb(1)    
rpcgen(1)    
utmpdump(1)    

Library Functions

A list of undocumented (GNU) C library functions is given below. Searches like the following are likely to suggest other functions that need to be documented:



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

Alternatively, one can look at the text symbols exported by a particular library (unless the library symbols have been stripped), to see if there is a corresponding man page. Here, an example using 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

In many cases, the interfaces listed below were found using such scripts, and it hasn't been checked whether these are obsolete interfaces that may better be not documented.

Function Since glibc
version
Notes
mallwatch(3)
tr_break(3) (?)
  The idea is that in a debugger, we set 'mallwatch' to an address returned by the malloc functions, set a breakpoint on tr_break() (defined inside glibc), and then continue execution. When a malloc operation touches the address referred to by 'mallwatch', the breakpoint is actioned. mtrace() must be used to install the necessary malloc hooks.
quick_exit(3) at_quick_exit(3) 2.10 See https://udrepper.livejournal.com/20948.html and http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm. Standardized in 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 Perhaps to be documented on resolver(3) page.
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)
  Locale functions -- See POSIX.1-2008 specification

In most cases, these functions can be integrated into the existing man pages for the corresponding traditional functions. For examples of what needs to be done, see the isalpha(3), toupper(3), towlower(3), and towupper(3) man pages (in particular, see the changes made in man-pages-3.63).

toascii_l(3) is nonstandard, and has different FTM requirements. The same is probably also true of some of the other functions.
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 Shadow group file functions, analogous to shadow password file functions
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 There are info pages, and <printf.h> contains useful information.
printf_size() printf_size_info() 2.1 There are info pages, and <printf.h> contains useful information.
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)
  There are various other "idna" functions not listed in a Versions file?
moncontrol(3)
monstartup(3)
profil_counter(3)
sprofil(3)
   
glob_pattern_p(3)   Needs _GNU_SOURCE
rexecoptions(3)
ruserpass(3)
  Not in glibc 2.12 headers?
h_errlist(3)
h_nerr(3)
  Not in glibc 2.12 headers? Probably deprecated.
host2netname(3)
netname2host(3)
netname2user(3)
user2netname(3)
   
isctype(3)   Needs _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 New C11 function, needs _ISOC11_SOURCE
timespec_getres(3) 2.34 New C2X function, needs _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) (variable)
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)
  There are info pages.
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)
  New in glibc 2.29.
C11 Threads functions
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()
  New in glibc 2.28.
Various wide-character functions
(with their traditional equivalents mentioned in parentheses)
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))
  After these man pages are written, add SEE ALSO entries from the pages for the traditional functions to the pages describing their wide-character equivalents.
wmemrtombs(3)    
swscanf(3)
vfwscanf(3)
vswscanf(3)
vwscanf(3)
wscanf(3)
   
fesetexcept()
fetestexceptflag()
fegetmode()
fesetmode()
2.25 New libm functions from ISO/IEC TS 18661-1:2014
roundeven()
roundevenf()
roundevenl()
fromfp()
fromfpf()
fromfpl()
ufromfp()
ufromfpf()
ufromfpl()
fromfpx()
fromfpxf()
fromfpxl()
ufromfpx()
ufromfpxf()
ufromfpxl()
2.25 New libm (nearest integer) functions from ISO/IEC TS 18661-1:2014
llogb()
llogbf()
llogbl()
2.25 New libm functions from ISO/IEC TS 18661-1:2014
fmaxmag()
fmaxmagf()
fmaxmagl()
fminmag()
fminmagf()
fminmagl()
2.25 New libm (max-min magnitude) functions from ISO/IEC TS 18661-1:2014
iseqsig() 2.25 New libm comparison macro from ISO/IEC TS 18661-1:2014
iscanonical()
issubnormal()
iszero()
2.25 New libm classification macros from ISO/IEC TS 18661-1:2014
totalorder()
totalorderf()
totalorderl()
totalordermag()
totalordermagf()
totalordermagl()
2.25 New libm (total order) functions from ISO/IEC TS 18661-1:2014
canonicalize()
canonicalizef()
canonicalizel()
2.25 New libm (canonicalize) functions from ISO/IEC TS 18661-1:2014
getpayload()
getpayloadf()
getpayloadl()
setpayload()
setpayloadf()
setpayloadl()
setpayloadsig()
setpayloadsigf()
setpayloadsigl()
2.25 New libm (Nan) functions from ISO/IEC TS 18661-1:2014

The POSIX Threads API

And last, but far from least, the POSIX threads API. Note that there is an existing, outdated set of pages supplied with glibc that document the old LinuxThreads implementation. (These pages are written under a license that allows re-use, so some material that they contain could be used in new pages.)

What is required is a set of pages that document the complete API, describing details where LinuxThreads and NPTL diverge from the standard. The existing pthreads(7) man page, which gives an overview of Pthreads implementations on Linux, is designed as a background document for these man pages.

The list of required man pages is long (related functions can be grouped on a single page); those marked with more asterisks are probably the most desirable to get done first.

Function Since glibc
version
Notes
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