{
    "content": [
        {
            "type": "text",
            "text": "# MAN-PAGES (info)\n\n## NAME\n\nman-pages - conventions for writing Linux man pages\n\n## SYNOPSIS\n\nman [section] title\n\n## DESCRIPTION\n\nThis  page describes the conventions that should be employed when writ-\ning man pages for the Linux  man-pages  project,  which  documents  the\nuser-space API provided by the Linux kernel and the GNU C library.  The\nproject thus provides most of the pages in Section 2, many of the pages\nthat appear in Sections 3, 4, and 7, and a few of the pages that appear\nin Sections 1, 5, and 8 of the man pages on a Linux system.   The  con-\nventions  described on this page may also be useful for authors writing\nman pages for other projects.\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **STYLE GUIDE**\n- **EXAMPLES**\n- **SEE ALSO**\n- **COLOPHON**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "MAN-PAGES",
        "section": "",
        "mode": "info",
        "summary": "man-pages - conventions for writing Linux man pages",
        "synopsis": "man [section] title",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [
            "For canonical examples of how man pages in the man-pages package should",
            "look, see pipe(2) and fcntl(2)."
        ],
        "see_also": [
            {
                "name": "man",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/man/1/json"
            },
            {
                "name": "man2html",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/man2html/1/json"
            },
            {
                "name": "attributes",
                "section": "7",
                "url": "https://www.chedong.com/phpMan.php/man/attributes/7/json"
            },
            {
                "name": "groff",
                "section": "7",
                "url": "https://www.chedong.com/phpMan.php/man/groff/7/json"
            },
            {
                "name": "groffman",
                "section": "7",
                "url": "https://www.chedong.com/phpMan.php/man/groffman/7/json"
            },
            {
                "name": "man",
                "section": "7",
                "url": "https://www.chedong.com/phpMan.php/man/man/7/json"
            },
            {
                "name": "mdoc",
                "section": "7",
                "url": "https://www.chedong.com/phpMan.php/man/mdoc/7/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 337,
                "subsections": []
            },
            {
                "name": "STYLE GUIDE",
                "lines": 405,
                "subsections": []
            },
            {
                "name": "EXAMPLES",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "COLOPHON",
                "lines": 6,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "man-pages - conventions for writing Linux man pages\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "man [section] title\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "This  page describes the conventions that should be employed when writ-\ning man pages for the Linux  man-pages  project,  which  documents  the\nuser-space API provided by the Linux kernel and the GNU C library.  The\nproject thus provides most of the pages in Section 2, many of the pages\nthat appear in Sections 3, 4, and 7, and a few of the pages that appear\nin Sections 1, 5, and 8 of the man pages on a Linux system.   The  con-\nventions  described on this page may also be useful for authors writing\nman pages for other projects.\n\nSections of the manual pages\nThe manual Sections are traditionally defined as follows:\n\n1 User commands (Programs)\nCommands that can be executed by the user from within a shell.\n\n2 System calls\nFunctions which wrap operations performed by the kernel.\n\n3 Library calls\nAll library functions excluding the system call  wrappers  (Most\nof the libc functions).\n\n4 Special files (devices)\nFiles found in /dev which allow to access to devices through the\nkernel.\n\n5 File formats and configuration files\nDescribes various human-readable file formats and  configuration\nfiles.\n\n6 Games\nGames and funny little programs available on the system.\n\n7 Overview, conventions, and miscellaneous\nOverviews  or  descriptions  of  various topics, conventions and\nprotocols, character set standards, the standard filesystem lay-\nout, and miscellaneous other things.\n\n8 System management commands\nCommands like mount(8), many of which only root can execute.\n\nMacro package\nNew  manual  pages  should be marked up using the groff an.tmac package\ndescribed in man(7).  This choice is mainly for consistency:  the  vast\nmajority  of  existing  Linux  manual  pages  are marked up using these\nmacros.\n\nConventions for source file layout\nPlease limit source code line length to no more than about  75  charac-\nters  wherever  possible.   This helps avoid line-wrapping in some mail\nclients when patches are submitted inline.\n\nTitle line\nThe first command in a man page should be a TH command:\n\n.TH title section date source manual\n\nThe arguments of the command are as follows:\n\ntitle  The title of the man page,  written  in  all  caps  (e.g.,  MAN-\nPAGES).\n\nsection\nThe section number in which the man page should be placed (e.g.,\n7).\n\ndate   The date of the last nontrivial change that was made to the  man\npage.   (Within  the man-pages project, the necessary updates to\nthese timestamps are handled automatically by scripts, so  there\nis  no  need to manually update them as part of a patch.)  Dates\nshould be written in the form YYYY-MM-DD.\n\nsource The source of the command, function, or system call.\n\nFor those few man-pages pages in Sections 1 and 8, probably  you\njust want to write GNU.\n\nFor system calls, just write Linux.  (An earlier practice was to\nwrite the version number of the kernel  from  which  the  manual\npage  was  being  written/checked.  However, this was never done\nconsistently, and so was probably worse than including  no  ver-\nsion number.  Henceforth, avoid including a version number.)\n\nFor  library  calls  that  are part of glibc or one of the other\ncommon GNU libraries, just use GNU C Library, GNU, or  an  empty\nstring.\n\nFor Section 4 pages, use Linux.\n\nIn cases of doubt, just write Linux, or GNU.\n\nmanual The  title of the manual (e.g., for Section 2 and 3 pages in the\nman-pages package, use Linux Programmer's Manual).\n\nSections within a manual page\nThe list below shows conventional or suggested sections.   Most  manual\npages  should include at least the highlighted sections.  Arrange a new\nmanual page so that sections are placed in the order shown in the list.\n\nNAME\nSYNOPSIS\nCONFIGURATION    [Normally only in Section 4]\nDESCRIPTION\nOPTIONS          [Normally only in Sections 1, 8]\nEXIT STATUS      [Normally only in Sections 1, 8]\nRETURN VALUE     [Normally only in Sections 2, 3]\nERRORS           [Typically only in Sections 2, 3]\nENVIRONMENT\nFILES\nVERSIONS         [Normally only in Sections 2, 3]\nATTRIBUTES       [Normally only in Sections 2, 3]\nCONFORMING TO\nNOTES\nBUGS\nEXAMPLES\nAUTHORS          [Discouraged]\nREPORTING BUGS   [Not used in man-pages]\nCOPYRIGHT        [Not used in man-pages]\nSEE ALSO\n\nWhere a traditional heading would apply, please use it;  this  kind  of\nconsistency  can  make  the  information  easier to understand.  If you\nmust, you can create your own headings if they make  things  easier  to\nunderstand  (this  can be especially useful for pages in Sections 4 and\n5).  However, before doing this, consider whether  you  could  use  the\ntraditional  headings,  with  some  subsections (.SS) within those sec-\ntions.\n\nThe following list elaborates on the contents of each of the above sec-\ntions.\n\nNAME   The name of this manual page.\n\nSee man(7) for important details of the line(s) that should fol-\nlow the .SH NAME command.  All words in this line (including the\nword immediately following the \"\\-\") should be in lowercase, ex-\ncept where English or technical terminological  convention  dic-\ntates otherwise.\n\nSYNOPSIS\nA brief summary of the command or function's interface.\n\nFor commands, this shows the syntax of the command and its argu-\nments (including options); boldface is used for as-is  text  and\nitalics  are  used  to indicate replaceable arguments.  Brackets\n([]) surround optional arguments,  vertical  bars  (|)  separate\nchoices,  and ellipses (...) can be repeated.  For functions, it\nshows any required data  declarations  or  #include  directives,\nfollowed by the function declaration.\n\nWhere  a  feature  test macro must be defined in order to obtain\nthe declaration of a function (or  a  variable)  from  a  header\nfile,  then  the  SYNOPSIS should indicate this, as described in\nfeaturetestmacros(7).\n\nCONFIGURATION\nConfiguration details for a device.\n\nThis section normally appears only in Section 4 pages.\n\nDESCRIPTION\nAn explanation of what the program, function, or format does.\n\nDiscuss how it interacts with files and standard input, and what\nit  produces  on standard output or standard error.  Omit inter-\nnals and implementation details unless they're critical for  un-\nderstanding  the interface.  Describe the usual case; for infor-\nmation on command-line options of a program use the OPTIONS sec-\ntion.\n\nWhen  describing  new behavior or new flags for a system call or\nlibrary function, be careful to note the  kernel  or  C  library\nversion  that  introduced  the  change.  The preferred method of\nnoting this information for flags is as part of a .TP  list,  in\nthe following form (here, for a new system call flag):\n\nXYZFLAG (since Linux 3.7)\nDescription of flag...\n\nIncluding  version information is especially useful to users who\nare constrained to using older  kernel  or  C  library  versions\n(which is typical in embedded systems, for example).\n\nOPTIONS\nA  description of the command-line options accepted by a program\nand how they change its behavior.\n\nThis section should appear only  for  Section  1  and  8  manual\npages.\n\nEXIT STATUS\nA  list  of the possible exit status values of a program and the\nconditions that cause these values to be returned.\n\nThis section should appear only  for  Section  1  and  8  manual\npages.\n\nRETURN VALUE\nFor Section 2 and 3 pages, this section gives a list of the val-\nues the library routine will return to the caller and the condi-\ntions that cause these values to be returned.\n\nERRORS For  Section  2 and 3 manual pages, this is a list of the values\nthat may be placed in errno in the event of an error, along with\ninformation about the cause of the errors.\n\nWhere  several  different conditions produce the same error, the\npreferred approach is to create separate list entries (with  du-\nplicate error names) for each of the conditions.  This makes the\nseparate conditions clear, may make the list easier to read, and\nallows  metainformation  (e.g.,  kernel version number where the\ncondition first became applicable) to be more easily marked  for\neach condition.\n\nThe error list should be in alphabetical order.\n\nENVIRONMENT\nA  list  of all environment variables that affect the program or\nfunction and how they affect it.\n\nFILES  A list of the files the program or function uses, such  as  con-\nfiguration  files, startup files, and files the program directly\noperates on.\n\nGive the full pathname of these files, and use the  installation\nprocess  to modify the directory part to match user preferences.\nFor many programs,  the  default  installation  location  is  in\n/usr/local,  so  your  base manual page should use /usr/local as\nthe base.\n\nATTRIBUTES\nA summary of various attributes of the function(s) documented on\nthis page.  See attributes(7) for further details.\n\nVERSIONS\nA  brief  summary  of the Linux kernel or glibc versions where a\nsystem call or library function appeared,  or  changed  signifi-\ncantly in its operation.\n\nAs a general rule, every new interface should include a VERSIONS\nsection in its manual page.  Unfortunately, many existing manual\npages  don't include this information (since there was no policy\nto do so when they were written).  Patches to  remedy  this  are\nwelcome,  but,  from  the perspective of programmers writing new\ncode, this information probably matters only in the case of ker-\nnel interfaces that have been added in Linux 2.4 or later (i.e.,\nchanges since kernel 2.2), and library functions that have  been\nadded  to  glibc  since  version  2.1 (i.e., changes since glibc\n2.0).\n\nThe syscalls(2) manual page also provides information about ker-\nnel versions in which various system calls first appeared.\n\nCONFORMING TO\nA description of any standards or conventions that relate to the\nfunction or command described by the manual page.\n\nThe preferred terms to use for the various standards are  listed\nas headings in standards(7).\n\nFor  a  page  in  Section  2  or 3, this section should note the\nPOSIX.1 version(s) that the call conforms to, and  also  whether\nthe call is specified in C99.  (Don't worry too much about other\nstandards like SUS, SUSv2, and XPG, or the SVr4 and  4.xBSD  im-\nplementation  standards,  unless the call was specified in those\nstandards, but isn't in the current version of POSIX.1.)\n\nIf the call is not governed by any standards but commonly exists\non  other  systems,  note  them.  If the call is Linux-specific,\nnote this.\n\nIf this section consists of just a list of standards  (which  it\ncommonly does), terminate the list with a period ('.').\n\nNOTES  Miscellaneous notes.\n\nFor  Section 2 and 3 man pages you may find it useful to include\nsubsections (SS) named Linux Notes and Glibc Notes.\n\nIn Section 2, use the heading C  library/kernel  differences  to\nmark  off  notes  that describe the differences (if any) between\nthe C library wrapper function for a system  call  and  the  raw\nsystem call interface provided by the kernel.\n\nBUGS   A  list  of  limitations,  known  defects or inconveniences, and\nother questionable activities.\n\nEXAMPLES\nOne or more examples demonstrating how this  function,  file  or\ncommand is used.\n\nFor  details  on  writing example programs, see Example programs\nbelow.\n\nAUTHORS\nA list of authors of the documentation or program.\n\nUse of an AUTHORS section is strongly  discouraged.   Generally,\nit is better not to clutter every page with a list of (over time\npotentially numerous) authors; if  you  write  or  significantly\namend  a page, add a copyright notice as a comment in the source\nfile.  If you are the author of a device driver and want to  in-\nclude  an  address for reporting bugs, place this under the BUGS\nsection.\n\nREPORTING BUGS\nThe man-pages project doesn't use a REPORTING  BUGS  section  in\nmanual pages.  Information on reporting bugs is instead supplied\nin the  script-generated  COLOPHON  section.   However,  various\nprojects  do use a REPORTING BUGS section.  it is recommended to\nplace it near the foot of the page.\n\nCOPYRIGHT\nThe man-pages project doesn't use a COPYRIGHT section in  manual\npages.   Copyright information is instead maintained in the page\nsource.  In pages where this section is present,  it  is  recom-\nmended  to  place  it  near the foot of the page, just above SEE\nALSO.\n\nSEE ALSO\nA comma-separated list of related man pages,  possibly  followed\nby other related pages or documents.\n\nThe list should be ordered by section number and then alphabeti-\ncally by name.  Do not terminate this list with a period.\n\nWhere the SEE ALSO list contains many long manual page names, to\nimprove the visual result of the output, it may be useful to em-\nploy the .ad l (don't right justify) and .nh  (don't  hyphenate)\ndirectives.   Hyphenation  of  individual page names can be pre-\nvented by preceding words with the string \"\\%\".\n\nGiven the distributed, autonomous nature of  FOSS  projects  and\ntheir  documentation,  it  is  sometimes  necessary--and in many\ncases desirable--that the SEE ALSO section  includes  references\nto manual pages provided by other projects.\n",
                "subsections": []
            },
            "STYLE GUIDE": {
                "content": "The  following  subsections  describe  the preferred style for the man-\npages project.  For details not covered below, the  Chicago  Manual  of\nStyle is usually a good source; try also grepping for preexisting usage\nin the project source tree.\n\nUse of gender-neutral language\nAs far as possible, use gender-neutral language  in  the  text  of  man\npages.  Use of \"they\" (\"them\", \"themself\", \"their\") as a gender-neutral\nsingular pronoun is acceptable.\n\nFormatting conventions for manual pages describing commands\nFor manual pages that describe a command (typically in Sections  1  and\n8),  the arguments are always specified using italics, even in the SYN-\nOPSIS section.\n\nThe name of the command, and its options, should always be formatted in\nbold.\n\nFormatting conventions for manual pages describing functions\nFor  manual  pages that describe functions (typically in Sections 2 and\n3), the arguments are always specified using italics, even in the  SYN-\nOPSIS section, where the rest of the function is specified in bold:\n\nint myfunction(int argc, char argv);\n\nVariable names should, like argument names, be specified in italics.\n\nAny reference to the subject of the current manual page should be writ-\nten with the name in bold followed by a pair of  parentheses  in  Roman\n(normal)  font.   For  example, in the fcntl(2) man page, references to\nthe subject of the page would be written as:  fcntl().   The  preferred\nway to write this in the source file is:\n\n.BR fcntl ()\n\n(Using  this format, rather than the use of \"\\fB...\\fP()\" makes it eas-\nier to write tools that parse man page source files.)\n\nUse semantic newlines\nIn the source of a manual page, new sentences should be started on  new\nlines,  and  long  sentences  should  split into lines at clause breaks\n(commas, semicolons, colons, and so on).   This  convention,  sometimes\nknown  as  \"semantic  newlines\",  makes  it easier to see the effect of\npatches, which often operate at the level of  individual  sentences  or\nsentence clauses.\n\nFormatting conventions (general)\nParagraphs  should be separated by suitable markers (usually either .PP\nor .IP).  Do not separate paragraphs using blank lines, as this results\nin poor rendering in some output formats (such as PostScript and PDF).\n\nFilenames (whether pathnames, or references to header files) are always\nin italics (e.g., <stdio.h>), except in the SYNOPSIS section, where in-\ncluded files are in bold (e.g., #include <stdio.h>).  When referring to\na standard header file include, specify the header file  surrounded  by\nangle brackets, in the usual C way (e.g., <stdio.h>).\n\nSpecial macros, which are usually in uppercase, are in bold (e.g., MAX-\nINT).  Exception: don't boldface NULL.\n\nWhen enumerating a list of error codes, the codes  are  in  bold  (this\nlist usually uses the .TP macro).\n\nComplete  commands  should,  if long, be written as an indented line on\ntheir own, with a blank line before and after the command, for example\n\nman 7 man-pages\n\nIf the command is short, then it can be included inline in the text, in\nitalic  format,  for example, man 7 man-pages.  In this case, it may be\nworth using nonbreaking spaces (\"\\ \") at suitable places  in  the  com-\nmand.  Command options should be written in italics (e.g., -l).\n\nExpressions,  if  not  written  on  a separate indented line, should be\nspecified in italics.  Again, the use of nonbreaking spaces may be  ap-\npropriate if the expression is inlined with normal text.\n\nWhen  showing example shell sessions, user input should be formatted in\nbold, for example\n\n$ date\nThu Jul  7 13:01:27 CEST 2016\n\nAny reference to another man page should be written with  the  name  in\nbold,  always  followed by the section number, formatted in Roman (nor-\nmal) font, without any separating spaces (e.g.,  intro(2)).   The  pre-\nferred way to write this in the source file is:\n\n.BR intro (2)\n\n(Including  the  section  number  in  cross  references lets tools like\nman2html(1) create properly hyperlinked pages.)\n\nControl characters should be written in bold face, with no quotes;  for\nexample, ^X.\n\nSpelling\nStarting with release 2.59, man-pages follows American spelling conven-\ntions (previously, there was a  random  mix  of  British  and  American\nspellings);  please  write all new pages and patches according to these\nconventions.\n\nAside from the well-known spelling differences, there are a  few  other\nsubtleties to watch for:\n\n*  American  English  tends to use the forms \"backward\", \"upward\", \"to-\nward\", and so on rather than the  British  forms  \"backwards\",  \"up-\nwards\", \"towards\", and so on.\n\nBSD version numbers\nThe  classical  scheme for writing BSD version numbers is x.yBSD, where\nx.y is the version number (e.g., 4.2BSD).  Avoid forms such as BSD 4.3.\n\nCapitalization\nIn subsection (\"SS\") headings, capitalize the first word in  the  head-\ning,  but  otherwise  use  lowercase, except where English usage (e.g.,\nproper nouns) or programming language  requirements  (e.g.,  identifier\nnames) dictate otherwise.  For example:\n\n.SS Unicode under Linux\n\nIndentation of structure definitions, shell session logs, and so on\nWhen  structure definitions, shell session logs, and so on are included\nin running text, indent them by 4 spaces (i.e.,  a  block  enclosed  by\n.in +4n and .in), format them using the .EX and EE macros, and surround\nthem with suitable paragraph markers (either .PP or .IP).  For example:\n\n.PP\n.in +4n\n.EX\nint\nmain(int argc, char *argv[])\n{\nreturn 0;\n}\n.EE\n.in\n.PP\n\nPreferred terms\nThe following table lists some preferred terms to  use  in  man  pages,\nmainly to ensure consistency across pages.\n\n\nbit mask             bitmask\nbuilt-in             builtin\nEpoch                epoch                    For  the UNIX Epoch\n(00:00:00,  1   Jan\n1970 UTC)\nfilename             file name\nfilesystem           file system\nhostname             host name\ninode                i-node\nlowercase            lower case, lower-case\nnonzero              non-zero\npathname             path name\npseudoterminal       pseudo-terminal\nprivileged port      reserved  port, system\nport\nreal-time            realtime, real time\nrun time             runtime\nsaved set-group-ID   saved group ID,  saved\nset-GID\nsaved set-user-ID    saved  user  ID, saved\nset-UID\nset-group-ID         set-GID, setgid\nset-user-ID          set-UID, setuid\nsuperuser            super user, super-user\nsuperblock           super  block,   super-\nblock\ntimestamp            time stamp\ntimezone             time zone\nuppercase            upper case, upper-case\nusable               useable\nuser space           userspace\nusername             user name\nx86-64               x8664                   Except if referring\nto result  of  \"un-\name -m\" or similar\nzeros                zeroes\n\nSee also the discussion Hyphenation of attributive compounds below.\n\nTerms to avoid\nThe following table lists some terms to avoid using in man pages, along\nwith some suggested alternatives, mainly to ensure  consistency  across\npages.\n\n\n32bit             32-bit                same   for   8-bit,\n16-bit, etc.\ncurrent process   calling process       A  common   mistake\nmade by kernel pro-\ngrammers when writ-\ning man pages\nmanpage           man   page,  manual\npage\nminus infinity    negative infinity\nnon-root          unprivileged user\nnon-superuser     unprivileged user\nnonprivileged     unprivileged\nOS                operating system\nplus infinity     positive infinity\npty               pseudoterminal\ntty               terminal\nUnices            UNIX systems\nUnixes            UNIX systems\n\nTrademarks\nUse the correct spelling and case for trademarks.  The following  is  a\nlist  of  the correct spellings of various relevant trademarks that are\nsometimes misspelled:\n\nDG/UX\nHP-UX\nUNIX\nUnixWare\n\nNULL, NUL, null pointer, and null character\nA null pointer is a pointer that points to nothing, and is normally in-\ndicated by the constant NULL.  On the other hand, NUL is the null byte,\na byte with the value 0, represented in C via  the  character  constant\n'\\0'.\n\nThe  preferred term for the pointer is \"null pointer\" or simply \"NULL\";\navoid writing \"NULL pointer\".\n\nThe preferred term for the byte is \"null byte\".  Avoid  writing  \"NUL\",\nsince  it  is  too  easily  confused with \"NULL\".  Avoid also the terms\n\"zero byte\" and \"null character\".  The byte that terminates a C  string\nshould  be described as \"the terminating null byte\"; strings may be de-\nscribed as \"null-terminated\", but avoid the use of \"NUL-terminated\".\n\nHyperlinks\nFor hyperlinks, use the .UR/.UE macro pair  (see  groffman(7)).   This\nproduces proper hyperlinks that can be used in a web browser, when ren-\ndering a page with, say:\n\nBROWSER=firefox man -H pagename\n\nUse of e.g., i.e., etc., a.k.a., and similar\nIn general, the use of abbreviations such as  \"e.g.\",  \"i.e.\",  \"etc.\",\n\"cf.\",  and \"a.k.a.\" should be avoided, in favor of suitable full word-\nings (\"for example\", \"that is\", \"and so on\", \"compare to\", \"also  known\nas\").\n\nThe  only  place where such abbreviations may be acceptable is in short\nparenthetical asides (e.g., like this one).\n\nAlways include periods in such abbreviations, as shown here.  In  addi-\ntion, \"e.g.\" and \"i.e.\" should always be followed by a comma.\n\nEm-dashes\nThe  way  to  write an em-dash--the glyph that appears at either end of\nthis subphrase--in *roff is with the macro \"\\(em\".  (On an ASCII termi-\nnal,  an  em-dash  typically renders as two hyphens, but in other typo-\ngraphical contexts it renders as a long  dash.)   Em-dashes  should  be\nwritten without surrounding spaces.\n\nHyphenation of attributive compounds\nCompound  terms  should be hyphenated when used attributively (i.e., to\nqualify a following noun). Some examples:\n\n32-bit value\ncommand-line argument\nfloating-point number\nrun-time check\nuser-space function\nwide-character string\n\nHyphenation with multi, non, pre, re, sub, and so on\nThe general tendency in modern English is not to hyphenate  after  pre-\nfixes  such  as  \"multi\", \"non\", \"pre\", \"re\", \"sub\", and so on.  Manual\npages should generally follow this rule when these prefixes are used in\nnatural English constructions with simple suffixes.  The following list\ngives some examples of the preferred forms:\n\ninterprocess\nmultithreaded\nmultiprocess\nnonblocking\nnondefault\nnonempty\nnoninteractive\nnonnegative\nnonportable\nnonzero\npreallocated\nprecreate\nprerecorded\nreestablished\nreinitialize\nrearm\nreread\nsubcomponent\nsubdirectory\nsubsystem\n\nHyphens should be retained when the prefixes are  used  in  nonstandard\nEnglish  words,  with  trademarks,  proper nouns, acronyms, or compound\nterms.  Some examples:\n\nnon-ASCII\nnon-English\nnon-NULL\nnon-real-time\n\nFinally, note that \"re-create\" and \"recreate\" are two different  verbs,\nand the former is probably what you want.\n\nGenerating optimal glyphs\nWhere a real minus character is required (e.g., for numbers such as -1,\nfor man page cross references such as utf-8(7), or when writing options\nthat  have a leading dash, such as in ls -l), use the following form in\nthe man page source:\n\n\\-\n\nThis guideline applies also to code examples.\n\nTo produce unslanted single quotes that render well  in  ASCII,  UTF-8,\nand PDF, use \"\\(aq\" (\"apostrophe quote\"); for example\n\n\\(aqC\\(aq\n\nwhere  C is the quoted character.  This guideline applies also to char-\nacter constants used in code examples.\n\nWhere a proper caret (^) that renders well in both a terminal  and  PDF\nis required, use \"\\(ha\".  This is especially necessary in code samples,\nto get a nicely rendered caret when rendering to PDF.\n\nUsing a naked \"~\" character results in a poor rendering  in  PDF.   In-\nstead use \"\\(ti\".  This is especially necessary in code samples, to get\na nicely rendered tilde when rendering to PDF.\n\nExample programs and shell sessions\nManual pages may include example programs demonstrating how  to  use  a\nsystem call or library function.  However, note the following:\n\n*  Example programs should be written in C.\n\n*  An  example  program is necessary and useful only if it demonstrates\nsomething beyond what can easily be provided in a  textual  descrip-\ntion  of  the interface.  An example program that does nothing other\nthan call an interface usually serves little purpose.\n\n*  Example programs should ideally be short (e.g., a good  example  can\noften  be  provided  in less than 100 lines of code), though in some\ncases longer programs may be necessary to  properly  illustrate  the\nuse of an API.\n\n*  Expressive code and useful comments are appreciated.\n\n*  Example programs should do error checking after system calls and li-\nbrary function calls.\n\n*  Example programs should be complete, and  compile  without  warnings\nwhen compiled with cc -Wall.\n\n*  Where possible and appropriate, example programs should allow exper-\nimentation, by varying their behavior based on inputs (ideally  from\ncommand-line arguments, or alternatively, via input read by the pro-\ngram).\n\n*  Example programs should be  laid  out  according  to  Kernighan  and\nRitchie  style, with 4-space indents.  (Avoid the use of TAB charac-\nters in source code!)  The following command can be used  to  format\nyour source code to something close to the preferred style:\n\nindent -npro -kr -i4 -ts4 -sob -l72 -ss -nut -psl prog.c\n\n*  For  consistency, all example programs should terminate using either\nof:\n\nexit(EXITSUCCESS);\nexit(EXITFAILURE);\n\nAvoid using the following forms to terminate a program:\n\nexit(0);\nexit(1);\nreturn n;\n\n*  If there is extensive explanatory text  before  the  program  source\ncode,  mark  off  the  source code with a subsection heading Program\nsource, as in:\n\n.SS Program source\n\nAlways do this if the explanatory text includes a shell session log.\n\nIf you include a shell session log demonstrating the use of  a  program\nor other system feature:\n\n*  Place the session log above the source code listing\n\n*  Indent the session log by four spaces.\n\n*  Boldface the user input text, to distinguish it from output produced\nby the system.\n\nFor some examples of  what  example  programs  should  look  like,  see\nwait(2) and pipe(2).\n",
                "subsections": []
            },
            "EXAMPLES": {
                "content": "For canonical examples of how man pages in the man-pages package should\nlook, see pipe(2) and fcntl(2).\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "man(1), man2html(1),  attributes(7),  groff(7),  groffman(7),  man(7),\nmdoc(7)\n",
                "subsections": []
            },
            "COLOPHON": {
                "content": "This  page  is  part of release 5.10 of the Linux man-pages project.  A\ndescription of the project, information about reporting bugs,  and  the\nlatest     version     of     this    page,    can    be    found    at\nhttps://www.kernel.org/doc/man-pages/.\n\nLinux                             2020-08-13                      MAN-PAGES(7)",
                "subsections": []
            }
        }
    }
}