bug#81442: Documentation Deficiency: printf man page lacks definition of format specifiers

Dmitri Seletski <[email protected]> Mon, 20 Jul 2026 11:46:55 +0100
Newsgroups gmane.comp.gnu.core-utils.bugs
Message-ID <[email protected]>
Hello Devs of Coreutils,

*
*

*Product:* Coreutils
*Component:* Documentation
*Summary:* Documentation Deficiency: |printf| man page lacks definitions 
for C format specifiers and fails to declare C-knowledge prerequisites.

*Description:*
The current |printf| man page contains a significant usability barrier 
in the DESCRIPTION section.

The man page states:
"...and all C format specifications ending with one of diouxXfeEgGcs, 
with ARGUMENTs converted to proper type first."

This documentation is flawed for two specific reasons:

 1. *Undefined Shorthand:* The string of characters |diouxXfeEgGcs| is
    presented without any definitions. A user cannot know which
    character corresponds to which data type without searching external
    sources.
 2. *Undisclosed Prerequisites:* While it may be expected that a user of
    command-line utilities has some technical background, the manual
    fails to explicitly state that a working knowledge of C format
    specifications is a prerequisite for understanding this command. It
    assumes the user understands the jargon without warning them or
    providing a reference to the C standard.

This creates a "knowledge trap" where the manual is no longer 
self-contained. It forces the user to leave the terminal and consult a 
different manual (the C standard) just to perform basic tasks with a 
core system utility.

*Steps to reproduce:*

 1. Run |man printf| in a terminal.
 2. Navigate to the DESCRIPTION section.
 3. Observe that |diouxXfeEgGcs| is used as a shorthand without any
    provided definitions or an explicit statement regarding the required
    prerequisite knowledge of C.

*Suggested Fix:*
Include a brief table or a descriptive list within the man page that 
defines these specifiers (e.g., d = signed decimal, s = string, etc.). 
Additionally, provide a clear reference or link to the C standard/format 
specification so users can understand the context of the command.


Kind Regards

Dmitri Seletski