man-pages(7): Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '= man-pages(7) – Konventioner för att skriva Linux man-sidor = == NAMN == '''man-pages''' – konventioner för att skriva Linux man-sidor == SYNOPSIS == '''man''' [sektion] titel == BESKRIVNING == Denna sida beskriver de konventioner som bör användas när man skriver man-sidor för Linux man-pages-projektet, vilket dokumenterar användarutrymmets API som tillhandahålls av Linux-kärnan och GNU C-biblioteket. Projektet tillhandahåller således de flesta sidor i...') |
Admin (diskussion | bidrag) Ingen redigeringssammanfattning |
||
(5 mellanliggande sidversioner av samma användare visas inte) | |||
Rad 2: | Rad 2: | ||
== NAMN == | == NAMN == | ||
man-pages – konventioner för att skriva Linux man-sidor | |||
== SYNOPSIS == | == SYNOPSIS == | ||
man [sektion] titel | |||
== BESKRIVNING == | == BESKRIVNING == | ||
Rad 13: | Rad 13: | ||
Manuella sektioner definieras traditionellt enligt följande: | Manuella sektioner definieras traditionellt enligt följande: | ||
# Användarkommandon (Program) | |||
Kommandon som kan exekveras av användaren från en shell. | Kommandon som kan exekveras av användaren från en shell. | ||
# Systemanrop | |||
Funktioner som omsluter operationer utförda av kärnan. | Funktioner som omsluter operationer utförda av kärnan. | ||
# Biblioteksanrop | |||
Alla biblioteksfunktioner exklusive systemanropsomslag (de flesta libc-funktioner). | Alla biblioteksfunktioner exklusive systemanropsomslag (de flesta libc-funktioner). | ||
# Speciella filer (enheter) | |||
Filer som finns i /dev som ger åtkomst till enheter via kärnan. | Filer som finns i `/dev` som ger åtkomst till enheter via kärnan. | ||
# Filformat och konfigurationsfiler | |||
Beskriver olika läsbara filformat och konfigurationsfiler. | Beskriver olika läsbara filformat och konfigurationsfiler. | ||
# Spel | |||
Spel och roliga små program som finns tillgängliga på systemet. | Spel och roliga små program som finns tillgängliga på systemet. | ||
# Översikter, konventioner och diverse | |||
Översikter eller beskrivningar av olika ämnen, konventioner och protokoll, teckenuppsättningsstandarder, standardfilsystemlayout och diverse andra saker. | Översikter eller beskrivningar av olika ämnen, konventioner och protokoll, teckenuppsättningsstandarder, standardfilsystemlayout och diverse andra saker. | ||
# Systemhanteringskommandon | |||
Kommandon som mount(8), varav många endast root kan exekvera. | Kommandon som `mount(8)`, varav många endast root kan exekvera. | ||
=== Makropaket === | === Makropaket === | ||
Rad 50: | Rad 50: | ||
Argumenten för kommandot är följande: | Argumenten för kommandot är följande: | ||
- | - titel: Titeln på man-sidan, skriven med versaler (t.ex. MAN-PAGES). | ||
- | - sektion: Sektionsnumret där man-sidan ska placeras (t.ex. 7). | ||
- | - datum: Datum för den senaste icke-triviala ändringen som gjordes i man-sidan. Datum bör skrivas i formatet ÅÅÅÅ-MM-DD. | ||
- | - källa: Namnet och versionen på projektet som tillhandahåller man-sidan (nödvändigtvis inte paketet som tillhandahåller funktionaliteten). | ||
- | - manual-sektion: Normalt bör detta vara tomt, eftersom standardvärdet kommer att vara bra. | ||
=== Sektioner inom en man-sida === | === Sektioner inom en man-sida === | ||
Nedan visas konventionella eller föreslagna sektioner. De flesta man-sidor bör inkludera åtminstone de markerade sektionerna. Ordna en ny man-sida så att sektionerna placeras i den ordning som visas i listan. | Nedan visas konventionella eller föreslagna sektioner. De flesta man-sidor bör inkludera åtminstone de markerade sektionerna. Ordna en ny man-sida så att sektionerna placeras i den ordning som visas i listan. | ||
- | - NAME | ||
- | - LIBRARY [Normalt endast i sektionerna 2, 3] | ||
- | - SYNOPSIS | ||
- | - CONFIGURATION [Normalt endast i sektion 4] | ||
- | - DESCRIPTION | ||
- | - OPTIONS [Normalt endast i sektionerna 1, 8] | ||
- | - EXIT STATUS [Normalt endast i sektionerna 1, 8] | ||
- | - RETURN VALUE [Normalt endast i sektionerna 2, 3] | ||
- | - ERRORS [Vanligen endast i sektionerna 2, 3] | ||
- | - ENVIRONMENT | ||
- | - FILES | ||
- | - ATTRIBUTES [Normalt endast i sektionerna 2, 3] | ||
- | - VERSIONS [Normalt endast i sektionerna 2, 3] | ||
- | - STANDARDS | ||
- | - HISTORY | ||
- | - NOTES | ||
- | - CAVEATS | ||
- | - BUGS | ||
- | - EXAMPLES | ||
- | - AUTHORS [Avrådes] | ||
- | - REPORTING BUGS [Används inte i man-pages] | ||
- | - COPYRIGHT [Används inte i man-pages] | ||
- | - SEE ALSO | ||
Där en traditionell rubrik skulle vara lämplig, vänligen använd den; denna typ av konsekvens kan göra informationen lättare att förstå. Om du måste kan du skapa egna rubriker om de gör saker lättare att förstå (detta kan vara särskilt användbart för sidor i sektionerna 4 och 5). Men innan du gör detta, överväg om du kan använda de traditionella rubrikerna, med några undersektioner ( | Där en traditionell rubrik skulle vara lämplig, vänligen använd den; denna typ av konsekvens kan göra informationen lättare att förstå. Om du måste kan du skapa egna rubriker om de gör saker lättare att förstå (detta kan vara särskilt användbart för sidor i sektionerna 4 och 5). Men innan du gör detta, överväg om du kan använda de traditionella rubrikerna, med några undersektioner (`.SS`) inom dessa sektioner. | ||
Följande lista utvecklar innehållet i var och en av ovanstående sektioner. | Följande lista utvecklar innehållet i var och en av ovanstående sektioner. | ||
Rad 90: | Rad 90: | ||
Namnet på denna man-sida. | Namnet på denna man-sida. | ||
Se [[man(7)]] för viktiga detaljer om raden/raderna som ska följa efter .SH NAME-kommandot. Alla ord i denna rad (inklusive ordet omedelbart efter "\-") bör vara med gemener, förutom där engelska eller tekniska terminologiska konventioner dikterar annat. | Se [[man(7)]] för viktiga detaljer om raden/raderna som ska följa efter `.SH NAME`-kommandot. Alla ord i denna rad (inklusive ordet omedelbart efter "\-") bör vara med gemener, förutom där engelska eller tekniska terminologiska konventioner dikterar annat. | ||
==== LIBRARY ==== | ==== LIBRARY ==== | ||
Biblioteket som tillhandahåller en symbol. | Biblioteket som tillhandahåller en symbol. | ||
Det visar det vanliga namnet på biblioteket, och inom parentes namnet på biblioteksfilen och, om det behövs, länkarflaggan som behövs för att länka ett program mot det: (libfoo[, -lfoo]). | Det visar det vanliga namnet på biblioteket, och inom parentes namnet på biblioteksfilen och, om det behövs, länkarflaggan som behövs för att länka ett program mot det: `(libfoo[, -lfoo])`. | ||
==== SYNOPSIS ==== | ==== SYNOPSIS ==== | ||
En kort sammanfattning av kommandots eller funktionens gränssnitt. | En kort sammanfattning av kommandots eller funktionens gränssnitt. | ||
För kommandon visar detta syntaxen för kommandot och dess argument (inklusive alternativ); fetstil används för text som den är och kursiv används för att indikera utbytbara argument. Hakparenteser ([]) omger valfria argument, vertikala streck (|) separerar val, och ellipser (...) kan upprepas. För funktioner visar det eventuella nödvändiga datadeklarationer eller #include-direktiv, följt av funktionsdeklarationen. | För kommandon visar detta syntaxen för kommandot och dess argument (inklusive alternativ); fetstil används för text som den är och kursiv används för att indikera utbytbara argument. Hakparenteser (`[]`) omger valfria argument, vertikala streck (`|`) separerar val, och ellipser (`...`) kan upprepas. För funktioner visar det eventuella nödvändiga datadeklarationer eller `#include`-direktiv, följt av funktionsdeklarationen. | ||
Där en funktionsmakro måste definieras för att få deklarationen av en funktion (eller en variabel) från en header-fil, bör SYNOPSIS indikera detta, som beskrivs i [[feature_test_macros(7)]]. | Där en funktionsmakro måste definieras för att få deklarationen av en funktion (eller en variabel) från en header-fil, bör `SYNOPSIS` indikera detta, som beskrivs i [[feature_test_macros(7)]]. | ||
==== CONFIGURATION ==== | ==== CONFIGURATION ==== | ||
Rad 114: | Rad 114: | ||
Diskutera hur det interagerar med filer och standard indata, och vad det producerar på standard utdata eller standard fel. Uteslut interna detaljer och implementationsdetaljer om de inte är kritiska för att förstå gränssnittet. Beskriv det vanliga fallet; för information om kommandoradsalternativ för ett program, använd sektionen OPTIONS. | Diskutera hur det interagerar med filer och standard indata, och vad det producerar på standard utdata eller standard fel. Uteslut interna detaljer och implementationsdetaljer om de inte är kritiska för att förstå gränssnittet. Beskriv det vanliga fallet; för information om kommandoradsalternativ för ett program, använd sektionen OPTIONS. | ||
När du beskriver nytt beteende eller nya flaggor för ett systemanrop eller biblioteksfunktion, var noga med att notera kärn- eller C-biblioteksversionen som introducerade förändringen. Den föredragna metoden att notera denna information för flaggor är som en del av en .TP-lista, i följande form (här för en ny systemanropsflagga): | När du beskriver nytt beteende eller nya flaggor för ett systemanrop eller biblioteksfunktion, var noga med att notera kärn- eller C-biblioteksversionen som introducerade förändringen. Den föredragna metoden att notera denna information för flaggor är som en del av en `.TP`-lista, i följande form (här för en ny systemanropsflagga): | ||
XYZ_FLAG (sedan Linux 3.7) | XYZ_FLAG (sedan Linux 3.7) | ||
Rad 135: | Rad 135: | ||
==== ERRORS ==== | ==== ERRORS ==== | ||
För man-sidor i sektionerna 2 och 3 är detta en lista över de värden som kan placeras i | För man-sidor i sektionerna 2 och 3 är detta en lista över de värden som kan placeras i `errno` vid ett fel, tillsammans med information om orsaken till felen. | ||
Där flera olika villkor producerar samma fel, är den föredragna metoden att skapa separata listposter (med dubbla felnamn) för var och en av villkoren. Detta gör de separata villkoren tydliga, kan göra listan lättare att läsa, och tillåter metainformation (t.ex. kärnversion där villkoret först blev tillämpligt) att lättare markeras för varje villkor. | Där flera olika villkor producerar samma fel, är den föredragna metoden att skapa separata listposter (med dubbla felnamn) för var och en av villkoren. Detta gör de separata villkoren tydliga, kan göra listan lättare att läsa, och tillåter metainformation (t.ex. kärnversion där villkoret först blev tillämpligt) att lättare markeras för varje villkor. | ||
Rad 147: | Rad 147: | ||
En lista över de filer som programmet eller funktionen använder, såsom konfigurationsfiler, startfiler och filer som programmet direkt arbetar på. | En lista över de filer som programmet eller funktionen använder, såsom konfigurationsfiler, startfiler och filer som programmet direkt arbetar på. | ||
Ange hela sökvägen till dessa filer, och använd installationsprocessen för att modifiera katalogdelen så att den matchar användarpreferenser. För många program är standardinstallationsplatsen i /usr/local, så din basman-sida bör använda /usr/local som bas. | Ange hela sökvägen till dessa filer, och använd installationsprocessen för att modifiera katalogdelen så att den matchar användarpreferenser. För många program är standardinstallationsplatsen i `/usr/local`, så din basman-sida bör använda `/usr/local` som bas. | ||
==== ATTRIBUTES ==== | ==== ATTRIBUTES ==== | ||
Rad 153: | Rad 153: | ||
==== VERSIONS ==== | ==== VERSIONS ==== | ||
En sammanfattning av system där API: | En sammanfattning av system där API:t fungerar annorlunda, eller där det finns ett liknande API. | ||
==== STANDARDS ==== | ==== STANDARDS ==== | ||
Rad 160: | Rad 160: | ||
De föredragna termerna att använda för de olika standarderna listas som rubriker i [[standards(7)]]. | De föredragna termerna att använda för de olika standarderna listas som rubriker i [[standards(7)]]. | ||
Denna sektion bör notera de aktuella standarder som API: | Denna sektion bör notera de aktuella standarder som API:t följer. | ||
Om API: | Om API:t inte styrs av några standarder men vanligtvis finns på andra system, notera dem. Om anropet är Linux-specifikt eller GNU-specifikt, notera detta. Om det är tillgängligt i BSD-systemen, notera det. | ||
Om denna sektion endast består av en lista över standarder (vilket den ofta gör), avsluta listan med en punkt ('.'). | Om denna sektion endast består av en lista över standarder (vilket den ofta gör), avsluta listan med en punkt ('.'). | ||
Rad 178: | Rad 178: | ||
Diverse anteckningar. | Diverse anteckningar. | ||
För man-sidor i sektionerna 2 och 3 kan det vara användbart att inkludera undersektioner ( | För man-sidor i sektionerna 2 och 3 kan det vara användbart att inkludera undersektioner (`.SS`) med namnen "Linux Notes" och "glibc Notes". | ||
I sektion 2, använd rubriken "C library/kernel differences" för att markera anteckningar som beskriver skillnaderna (om några) mellan C-bibliotekets omslagsfunktion för ett systemanrop och det råa systemanropsgränssnittet som tillhandahålls av kärnan. | I sektion 2, använd rubriken "C library/kernel differences" för att markera anteckningar som beskriver skillnaderna (om några) mellan C-bibliotekets omslagsfunktion för ett systemanrop och det råa systemanropsgränssnittet som tillhandahålls av kärnan. | ||
Rad 209: | Rad 209: | ||
Listan bör ordnas efter sektionsnummer och sedan alfabetiskt efter namn. Avsluta inte denna lista med en punkt. | Listan bör ordnas efter sektionsnummer och sedan alfabetiskt efter namn. Avsluta inte denna lista med en punkt. | ||
Där SEE ALSO-listan innehåller många långa man-sidnamn, för att förbättra det visuella resultatet av utskriften kan det vara användbart att använda direktiven .ad l (justera inte höger) och .nh (avaktivera avstavning). Avstavning av individuella sidnamn kan förhindras genom att föregå ord med strängen | Där SEE ALSO-listan innehåller många långa man-sidnamn, för att förbättra det visuella resultatet av utskriften kan det vara användbart att använda direktiven `.ad l` (justera inte höger) och `.nh` (avaktivera avstavning). Avstavning av individuella sidnamn kan förhindras genom att föregå ord med strängen `\%`. | ||
Med tanke på den distribuerade, autonoma naturen av FOSS-projekt och deras dokumentation, är det ibland nödvändigt—och i många fall önskvärt—att SEE ALSO-sektionen inkluderar referenser till man-sidor som tillhandahålls av andra projekt. | Med tanke på den distribuerade, autonoma naturen av FOSS-projekt och deras dokumentation, är det ibland nödvändigt—och i många fall önskvärt—att SEE ALSO-sektionen inkluderar referenser till man-sidor som tillhandahålls av andra projekt. | ||
--- | |||
== FORMATERINGS- OCH SPRÅKKONVENTIONER == | == FORMATERINGS- OCH SPRÅKKONVENTIONER == | ||
Rad 217: | Rad 219: | ||
=== SYNOPSIS === | === SYNOPSIS === | ||
Omslut funktionsprototyperna i ett .nf/.fi-par för att förhindra textfyllning. | Omslut funktionsprototyperna i ett `.nf`/`.fi`-par för att förhindra textfyllning. | ||
Generellt, där mer än en funktionsprototyp visas i SYNOPSIS, bör prototyperna inte separeras av tomma rader. Dock kan tomma rader (åstadkomna med .P) läggas till i följande fall: | Generellt, där mer än en funktionsprototyp visas i `SYNOPSIS`, bör prototyperna inte separeras av tomma rader. Dock kan tomma rader (åstadkomna med `.P`) läggas till i följande fall: | ||
- För att separera långa listor av funktionsprototyper i relaterade grupper (se till exempel [[list(3)]]); | - För att separera långa listor av funktionsprototyper i relaterade grupper (se till exempel [[list(3)]]); | ||
- I andra fall som kan förbättra läsbarheten. | - I andra fall som kan förbättra läsbarheten. | ||
I SYNOPSIS kan en lång funktionsprototyp behöva fortsättas på nästa rad. Fortsättningsraden indenteras enligt följande regler: | I `SYNOPSIS` kan en lång funktionsprototyp behöva fortsättas på nästa rad. Fortsättningsraden indenteras enligt följande regler: | ||
# Om det finns en enda sådan prototyp som behöver fortsättas, justera fortsättningsraden så att när sidan renderas på en fastbreddsteckensnittsenhet (t.ex. på en xterm) börjar fortsättningsraden precis under början av argumentlistan på raden ovan. (Undantag: indenteringen kan justeras om det behövs för att förhindra en mycket lång fortsättningsrad eller en ytterligare fortsättningsrad där funktionsprototypen är mycket lång.) Exempel: | |||
int tcsetattr(int fd, int optional_actions, | int tcsetattr(int fd, int optional_actions, | ||
const struct termios *termios_p); | const struct termios *termios_p); | ||
# Men där flera funktioner i `SYNOPSIS` kräver fortsättningsrader, och funktionsnamnen har olika längder, justera alla fortsättningsrader så att de börjar i samma kolumn. Detta ger en trevligare rendering i PDF-utskrift (eftersom `SYNOPSIS` använder ett variabelt breddteckensnitt där mellanslag renderas smalare än de flesta tecken). Exempel: | |||
int getopt(int argc, char * const argv[], | int getopt(int argc, char * const argv[], | ||
Rad 240: | Rad 243: | ||
=== RETURN VALUE === | === RETURN VALUE === | ||
Den föredragna formuleringen för att beskriva hur | Den föredragna formuleringen för att beskriva hur `errno` ställs in är "errno sätts för att indikera felet" eller liknande. Denna formulering är konsekvent med den som används i både POSIX.1 och FreeBSD. | ||
=== ATTRIBUTES === | === ATTRIBUTES === | ||
Observera följande: | Observera följande: | ||
- Omslut tabellen i denna sektion med ett .ad l/.ad-par för att inaktivera textfyllning och ett .nh/.hy-par för att | - Omslut tabellen i denna sektion med ett `.ad l`/`.ad`-par för att inaktivera textfyllning och ett `.nh`/`.hy`-par för att avaktivera avstavning. | ||
- Se till att tabellen upptar hela sidbredden genom att använda en lbx-beskrivning för en av kolumnerna (vanligtvis den första kolumnen, men i vissa fall den sista kolumnen om den innehåller mycket text). | |||
- Använd T{/ | - Se till att tabellen upptar hela sidbredden genom att använda en `lbx`-beskrivning för en av kolumnerna (vanligtvis den första kolumnen, men i vissa fall den sista kolumnen om den innehåller mycket text). | ||
- Använd `T{/}`-makropar flitigt för att tillåta tabellceller att brytas över flera rader (tänk också på att sidor ibland kan renderas till en bredd på mindre än 80 kolumner). | |||
För exempel på allt ovanstående, se källkoden för olika sidor. | För exempel på allt ovanstående, se källkoden för olika sidor. | ||
--- | |||
== STILGUIDE == | == STILGUIDE == | ||
Följande undersektioner beskriver den föredragna stilen för man-pages-projektet. För detaljer som inte täcks nedan är "Chicago Manual of Style" vanligtvis en bra källa; försök också att | Följande undersektioner beskriver den föredragna stilen för man-pages-projektet. För detaljer som inte täcks nedan är "Chicago Manual of Style" vanligtvis en bra källa; försök också att söka efter befintlig användning i projektets källträd. | ||
=== Användning av könsneutralt språk === | === Användning av könsneutralt språk === | ||
Rad 258: | Rad 265: | ||
=== Formateringskonventioner för man-sidor som beskriver kommandon === | === Formateringskonventioner för man-sidor som beskriver kommandon === | ||
För man-sidor som beskriver ett kommando (typiskt i sektionerna 1 och 8), specificeras argumenten alltid med kursiv stil, även i SYNOPSIS-sektionen. | För man-sidor som beskriver ett kommando (typiskt i sektionerna 1 och 8), specificeras argumenten alltid med kursiv stil, även i `SYNOPSIS`-sektionen. | ||
Namnet på kommandot och dess alternativ bör alltid formateras i fetstil. | Namnet på kommandot och dess alternativ bör alltid formateras i fetstil. | ||
=== Formateringskonventioner för man-sidor som beskriver funktioner === | === Formateringskonventioner för man-sidor som beskriver funktioner === | ||
För man-sidor som beskriver funktioner (typiskt i sektionerna 2 och 3), specificeras argumenten alltid med kursiv stil, även i SYNOPSIS-sektionen, där resten av funktionen specificeras i fetstil: | För man-sidor som beskriver funktioner (typiskt i sektionerna 2 och 3), specificeras argumenten alltid med kursiv stil, även i `SYNOPSIS`-sektionen, där resten av funktionen specificeras i fetstil: | ||
int myfunction(int argc, char **argv); | int myfunction(int argc, char **argv); | ||
Rad 273: | Rad 280: | ||
.BR fcntl () | .BR fcntl () | ||
( | (Denna metod gör det lättare att skriva verktyg som analyserar man-sidans källfiler.) | ||
=== Använd semantiska radbrytningar === | === Använd semantiska radbrytningar === | ||
Rad 281: | Rad 288: | ||
Det finns olika typer av listor: | Det finns olika typer av listor: | ||
- | - **Märkta stycken** | ||
Dessa används för en lista över etiketter och deras beskrivningar. När etiketterna är konstanter (antingen makron eller nummer) är de i fetstil. Använd .TP-makrot. | Dessa används för en lista över etiketter och deras beskrivningar. När etiketterna är konstanter (antingen makron eller nummer) är de i fetstil. Använd `.TP`-makrot. | ||
Ett exempel är denna undersektion "Märkta stycken" själv. | Ett exempel är denna undersektion "Märkta stycken" själv. | ||
- | - **Ordnade listor** | ||
Element föregås av ett nummer inom parentes (1), (2). Dessa representerar en uppsättning steg som har en ordning. | Element föregås av ett nummer inom parentes (1), (2). Dessa representerar en uppsättning steg som har en ordning. | ||
När det finns delsteg kommer de att numreras som (4.2). | När det finns delsteg kommer de att numreras som (4.2). | ||
- | - **Positionslistor** | ||
Element föregås av ett nummer (index) inom hakparenteser [4], [5]. Dessa representerar fält i en uppsättning. Det första indexet blir: | Element föregås av ett nummer (index) inom hakparenteser [4], [5]. Dessa representerar fält i en uppsättning. Det första indexet blir: | ||
Rad 297: | Rad 304: | ||
- 1: När det representerar fält i en fil, för att vara konsekvent med verktyg som [[cut(1)]]. | - 1: När det representerar fält i en fil, för att vara konsekvent med verktyg som [[cut(1)]]. | ||
- | - **Alternativlistor** | ||
Element föregås av en bokstav inom parentes (a), (b). Dessa representerar en uppsättning (normalt) exklusiva alternativ. | Element föregås av en bokstav inom parentes (a), (b). Dessa representerar en uppsättning (normalt) exklusiva alternativ. | ||
- | - **Punktlistor** | ||
Element föregås av punktsymboler (\[bu]). Allt som inte passar in någon annanstans täcks vanligtvis av denna typ av lista. | Element föregås av punktsymboler (`\[bu]`). Allt som inte passar in någon annanstans täcks vanligtvis av denna typ av lista. | ||
- | - **Numrerade noter** | ||
Inte riktigt en lista, men syntaxen är identisk med "positionslistor". | Inte riktigt en lista, men syntaxen är identisk med "positionslistor". | ||
Rad 309: | Rad 316: | ||
=== Formateringskonventioner (allmänna) === | === Formateringskonventioner (allmänna) === | ||
Stycken bör separeras med lämpliga markörer (vanligtvis antingen .P eller .IP). Separera inte stycken med tomma rader, eftersom detta resulterar i dålig rendering i vissa utskriftsformat (såsom PostScript och PDF). | Stycken bör separeras med lämpliga markörer (vanligtvis antingen `.P` eller `.IP`). Separera inte stycken med tomma rader, eftersom detta resulterar i dålig rendering i vissa utskriftsformat (såsom PostScript och PDF). | ||
Filnamn (vare sig det är sökvägar eller referenser till header-filer) är alltid i kursiv stil (t.ex. <stdio.h>), förutom i SYNOPSIS-sektionen, där inkluderade filer är i fetstil (t.ex. #include <stdio.h>). När du hänvisar till en standardheader-fil inkludera, specificera header-filen omgiven av vinkelparenteser, på det vanliga C-sättet (t.ex. <stdio.h>). | Filnamn (vare sig det är sökvägar eller referenser till header-filer) är alltid i kursiv stil (t.ex. `<stdio.h>`), förutom i `SYNOPSIS`-sektionen, där inkluderade filer är i fetstil (t.ex. `#include <stdio.h>`). När du hänvisar till en standardheader-fil inkludera, specificera header-filen omgiven av vinkelparenteser, på det vanliga C-sättet (t.ex. `<stdio.h>`). | ||
Speciella makron, som vanligtvis är i versaler, är i fetstil (t.ex. MAXINT). Undantag: använd inte fetstil för NULL. | Speciella makron, som vanligtvis är i versaler, är i fetstil (t.ex. `MAXINT`). Undantag: använd inte fetstil för `NULL`. | ||
När du upprättar en lista över felkoder är koderna i fetstil (denna lista använder vanligtvis .TP-makrot). | När du upprättar en lista över felkoder är koderna i fetstil (denna lista använder vanligtvis `.TP`-makrot). | ||
Kompletta kommandon bör, om de är långa, skrivas som en indenterad rad för sig själva, med en tom rad före och efter kommandot, till exempel | Kompletta kommandon bör, om de är långa, skrivas som en indenterad rad för sig själva, med en tom rad före och efter kommandot, till exempel | ||
Rad 321: | Rad 328: | ||
man 7 man-pages | man 7 man-pages | ||
Om kommandot är kort kan det inkluderas inline i texten, i kursiv stil, till exempel, man 7 man-pages. I detta fall kan det vara värt att använda icke-brytande mellanslag ( | Om kommandot är kort kan det inkluderas inline i texten, i kursiv stil, till exempel, `man 7 man-pages`. I detta fall kan det vara värt att använda icke-brytande mellanslag (`~`) på lämpliga ställen i kommandot. Kommandoalternativ bör skrivas i kursiv stil (t.ex. `-l`). | ||
Uttryck, om de inte skrivs på en separat indenterad rad, bör specificeras i kursiv stil. Återigen kan användningen av icke-brytande mellanslag vara lämplig om uttrycket är inlinat med normal text. | Uttryck, om de inte skrivs på en separat indenterad rad, bör specificeras i kursiv stil. Återigen kan användningen av icke-brytande mellanslag vara lämplig om uttrycket är inlinat med normal text. | ||
Rad 336: | Rad 343: | ||
(Genom att inkludera sektionsnumret i korsreferenser kan verktyg som [[man2html(1)]] skapa korrekt hyperlänkade sidor.) | (Genom att inkludera sektionsnumret i korsreferenser kan verktyg som [[man2html(1)]] skapa korrekt hyperlänkade sidor.) | ||
Kontrolltecken bör skrivas i fetstil, utan citattecken; till exempel, ^X. | Kontrolltecken bör skrivas i fetstil, utan citattecken; till exempel, `^X`. | ||
=== Stavning === | === Stavning === | ||
Rad 343: | Rad 350: | ||
Förutom de välkända stavningsskillnaderna finns det några andra subtiliteter att vara uppmärksam på: | Förutom de välkända stavningsskillnaderna finns det några andra subtiliteter att vara uppmärksam på: | ||
- Amerikansk engelska tenderar att använda formerna "backward", "upward", "toward" | - Amerikansk engelska tenderar att använda formerna "backward", "upward", "toward" och så vidare snarare än de brittiska formerna "backwards", "upwards", "towards" och så vidare. | ||
- Åsikterna är delade om "acknowledgement" vs "acknowledgment". Den senare är dominerande, men inte universell användning i amerikansk engelska. POSIX och BSD-licensen använder den tidigare stavningen. I Linux man-pages-projektet använder vi "acknowledgement". | - Åsikterna är delade om "acknowledgement" vs "acknowledgment". Den senare är dominerande, men inte universell användning i amerikansk engelska. POSIX och BSD-licensen använder den tidigare stavningen. I Linux man-pages-projektet använder vi "acknowledgement". | ||
=== BSD versionsnummer === | === BSD versionsnummer === | ||
Den klassiska ordningen för att skriva BSD-versionsnummer är x.yBSD, där x.y är versionsnumret (t.ex. 4.2BSD). Undvik former som BSD 4.3. | Den klassiska ordningen för att skriva BSD-versionsnummer är `x.yBSD`, där `x.y` är versionsnumret (t.ex. `4.2BSD`). Undvik former som `BSD 4.3`. | ||
=== Versalisering === | === Versalisering === | ||
I undersektioner ( | I undersektioner (`.SS`) bör du versalisera det första ordet i rubriken, men annars använda gemener, förutom där engelsk användning (t.ex. egennamn) eller programmeringsspråkskrav (t.ex. identifierarnamn) dikterar annat. Till exempel: | ||
.SS Unicode under Linux | .SS Unicode under Linux | ||
=== Indentering av strukturdefinitioner, shell-sessionloggar och så vidare === | === Indentering av strukturdefinitioner, shell-sessionloggar och så vidare === | ||
När strukturdefinitioner, shell-sessionloggar | När strukturdefinitioner, shell-sessionloggar och så vidare inkluderas i löpande text, indenteras de med 4 mellanslag (d.v.s. ett block inneslutet av `.in +4n` och `.in`), formateras de med `.EX` och `.EE`-makron, och omges av lämpliga styckemarkörer (antingen `.P` eller `.IP`). Till exempel: | ||
.P | .P | ||
Rad 373: | Rad 380: | ||
Följande tabell listar några föredragna termer att använda i man-sidor, främst för att säkerställa konsekvens över sidor. | Följande tabell listar några föredragna termer att använda i man-sidor, främst för att säkerställa konsekvens över sidor. | ||
| Term | {| class="wikitable" | ||
|- | |- | ||
| bit mask | bitmask | | ! Term !! Undvik att använda !! Noteringar | ||
| built-in | builtin | | |- | ||
| Epoch | epoch | För UNIX Epoch (00:00:00, 1 jan 1970 UTC) | | bit mask || bitmask || | ||
| filename | file name | | |- | ||
| filesystem | file system | | | built-in || builtin || | ||
| hostname | host name | | |- | ||
| inode | i-node | | | Epoch || epoch || För UNIX Epoch (00:00:00, 1 jan 1970 UTC) | ||
| lowercase | lower case, lower-case | | |- | ||
| nonzero | non-zero | | | filename || file name || | ||
| pathname | path name | | |- | ||
| pseudoterminal | pseudo-terminal | | | filesystem || file system || | ||
| privileged port | reserved port, system port | | |- | ||
| real-time | realtime, real time | | | hostname || host name || | ||
| run time | runtime | | |- | ||
| saved set-group-ID | saved group ID, saved set-GID | | | inode || i-node || | ||
| saved set-user-ID | saved user ID, saved set-UID | | |- | ||
| set-group-ID | set-GID, setgid | | | lowercase || lower case, lower-case || | ||
| set-user-ID | set-UID, setuid | | |- | ||
| superuser | super user, super-user | | | nonzero || non-zero || | ||
| superblock | super block, super-block| | |- | ||
| symbolic link | symlink | | | pathname || path name || | ||
| timestamp | time stamp | | |- | ||
| timezone | time zone | | | pseudoterminal || pseudo-terminal || | ||
| uppercase | upper case, upper-case | | |- | ||
| usable | useable | | | privileged port || reserved port, system port || | ||
| user space | userspace | | |- | ||
| username | user name | | | real-time || realtime, real time || | ||
| x86-64 | x86_64 | Förutom när man refererar till resultatet av | |- | ||
| zeros | zeroes | | | run time || runtime || | ||
|- | |||
| saved set-group-ID || saved group ID, saved set-GID || | |||
|- | |||
| saved set-user-ID || saved user ID, saved set-UID || | |||
|- | |||
| set-group-ID || set-GID, setgid || | |||
|- | |||
| set-user-ID || set-UID, setuid || | |||
|- | |||
| superuser || super user, super-user || | |||
|- | |||
| superblock || super block, super-block|| | |||
|- | |||
| symbolic link || symlink || | |||
|- | |||
| timestamp || time stamp || | |||
|- | |||
| timezone || time zone || | |||
|- | |||
| uppercase || upper case, upper-case || | |||
|- | |||
| usable || useable || | |||
|- | |||
| user space || userspace || | |||
|- | |||
| username || user name || | |||
|- | |||
| x86-64 || x86_64 || Förutom när man refererar till resultatet av `uname -m` eller liknande | |||
|- | |||
| zeros || zeroes || | |||
|} | |||
Se även diskussionen om "Bindestreckning av attributiva sammansättningar" nedan. | Se även diskussionen om "Bindestreckning av attributiva sammansättningar" nedan. | ||
Rad 410: | Rad 448: | ||
Följande tabell listar några termer att undvika att använda i man-sidor, tillsammans med några föreslagna alternativ, främst för att säkerställa konsekvens över sidor. | Följande tabell listar några termer att undvika att använda i man-sidor, tillsammans med några föreslagna alternativ, främst för att säkerställa konsekvens över sidor. | ||
| Undvik | {| class="wikitable" | ||
|- | |- | ||
| 32bit | 32-bit | ! Undvik !! Använd istället !! Noteringar | ||
| current process | calling process | |- | ||
| manpage | man-sida, manual sida | | 32bit || 32-bit || Samma för 8-bit, 16-bit osv. | ||
| minus infinity | negative infinity | |- | ||
| non-root | unprivileged user | | current process || calling process || Ett vanligt misstag gjort av kärnprogrammerare när de skriver man-sidor | ||
| non-superuser | unprivileged user | |- | ||
| nonprivileged | unprivileged | | manpage || man-sida, manual sida || | ||
| OS | operating system | |- | ||
| plus infinity | positive infinity | | minus infinity || negative infinity || | ||
| pty | pseudoterminal | |- | ||
| tty | terminal | | non-root || unprivileged user || | ||
| Unices | UNIX systems | |- | ||
| Unixes | UNIX systems | | non-superuser || unprivileged user || | ||
|- | |||
| nonprivileged || unprivileged || | |||
|- | |||
| OS || operating system || | |||
|- | |||
| plus infinity || positive infinity || | |||
|- | |||
| pty || pseudoterminal || | |||
|- | |||
| tty || terminal || | |||
|- | |||
| Unices || UNIX systems || | |||
|- | |||
| Unixes || UNIX systems || | |||
|} | |||
=== Varumärken === | === Varumärken === | ||
Rad 435: | Rad 488: | ||
=== NULL, NUL, nullpekare och nullbyte === | === NULL, NUL, nullpekare och nullbyte === | ||
En nullpekare är en pekare som pekar på ingenting, och indikeras normalt av konstanten | En nullpekare är en pekare som pekar på ingenting, och indikeras normalt av konstanten `NULL`. Å andra sidan är `NUL` nullbyten, en byte med värdet 0, representerad i C via teckenkonstanten `'\0'`. | ||
Den föredragna termen för pekaren är "nullpekare" eller helt enkelt "NULL"; undvik att skriva "NULL-pekare". | Den föredragna termen för pekaren är "nullpekare" eller helt enkelt "NULL"; undvik att skriva "NULL-pekare". | ||
Rad 442: | Rad 495: | ||
=== Hyperlänkar === | === Hyperlänkar === | ||
För hyperlänkar, använd .UR/.UE-makropar (se [[groff_man(7)]]). Detta producerar korrekta hyperlänkar som kan användas i en webbläsare när man renderar en sida med, säg: | För hyperlänkar, använd `.UR`/`.UE`-makropar (se [[groff_man(7)]]). Detta producerar korrekta hyperlänkar som kan användas i en webbläsare när man renderar en sida med, säg: | ||
BROWSER=firefox man -H sidnamn | BROWSER=firefox man -H sidnamn | ||
Rad 454: | Rad 507: | ||
=== Tankstreck === | === Tankstreck === | ||
Sättet att skriva ett tankstreck—tecknet som visas i vardera änden av denna fras—i *roff är med makrot | Sättet att skriva ett tankstreck—tecknet som visas i vardera änden av denna fras—i *roff är med makrot `\[em]`. (På en ASCII-terminal renderas ett tankstreck typiskt som två bindestreck, men i andra typografiska sammanhang renderas det som ett långt streck.) Tankstreck bör skrivas utan omgivande mellanslag. | ||
=== Bindestreckning av attributiva sammansättningar === | === Bindestreckning av attributiva sammansättningar === | ||
Rad 500: | Rad 553: | ||
=== Generera optimala tecken === | === Generera optimala tecken === | ||
Där ett riktigt minustecken krävs (t.ex. för tal som -1, för man-sidkorsreferenser som [[utf-8(7)]], eller när man skriver alternativ som har ett ledande streck, som i ls -l), använd följande form i man-sidans källkod: | Där ett riktigt minustecken krävs (t.ex. för tal som -1, för man-sidkorsreferenser som [[utf-8(7)]], eller när man skriver alternativ som har ett ledande streck, som i `ls -l`), använd följande form i man-sidans källkod: | ||
\- | \- | ||
Rad 511: | Rad 564: | ||
- Att generera tecken som när de kopieras från renderade sidor kommer att producera riktiga minustecken när de klistras in i en terminal. | - Att generera tecken som när de kopieras från renderade sidor kommer att producera riktiga minustecken när de klistras in i en terminal. | ||
För att producera osnedställda enkla citattecken som renderar väl i ASCII, UTF-8 och PDF, använd | För att producera osnedställda enkla citattecken som renderar väl i ASCII, UTF-8 och PDF, använd `\[aq]` ("apostrof-citattecken"); till exempel | ||
\[aq]C\[aq] | \[aq]C\[aq] | ||
Rad 517: | Rad 570: | ||
där C är det citerade tecknet. Denna riktlinje gäller också för teckenkonstanter som används i kodexempel. | där C är det citerade tecknet. Denna riktlinje gäller också för teckenkonstanter som används i kodexempel. | ||
Där ett riktigt cirkumflex (^) som renderar väl både i en terminal och i PDF krävs, använd | Där ett riktigt cirkumflex (`^`) som renderar väl både i en terminal och i PDF krävs, använd `\[ha]`. Detta är särskilt nödvändigt i kodexempel för att få ett snyggt renderat cirkumflex när man renderar till PDF. | ||
Att använda ett naket | Att använda ett naket `~`-tecken resulterar i en dålig rendering i PDF. Använd istället `\[ti]`. Detta är särskilt nödvändigt i kodexempel för att få en snyggt renderad tilde när man renderar till PDF. | ||
=== Exempelprogram och shell-sessioner === | === Exempelprogram och shell-sessioner === | ||
Rad 530: | Rad 583: | ||
- Kommentarer bör inkluderas där de är hjälpsamma. Fullständiga meningar i fristående kommentarer bör avslutas med en punkt. Punkter bör generellt utelämnas i "tagg"-kommentarer (d.v.s. kommentarer som placeras på samma kodrad); sådana kommentarer är i alla fall vanligtvis korta fraser snarare än fullständiga meningar. | - Kommentarer bör inkluderas där de är hjälpsamma. Fullständiga meningar i fristående kommentarer bör avslutas med en punkt. Punkter bör generellt utelämnas i "tagg"-kommentarer (d.v.s. kommentarer som placeras på samma kodrad); sådana kommentarer är i alla fall vanligtvis korta fraser snarare än fullständiga meningar. | ||
- Exempelprogram bör göra felkontroller efter systemanrop och biblioteksfunktionsanrop. | - Exempelprogram bör göra felkontroller efter systemanrop och biblioteksfunktionsanrop. | ||
- Exempelprogram bör vara kompletta och kompilera utan varningar när de kompileras med | - Exempelprogram bör vara kompletta och kompilera utan varningar när de kompileras med `cc -Wall`. | ||
- Där det är möjligt och lämpligt bör exempelprogram tillåta experimentering genom att variera deras beteende baserat på indata (idealiskt från kommandoradsargument eller alternativt via indata som läses av programmet). | - Där det är möjligt och lämpligt bör exempelprogram tillåta experimentering genom att variera deras beteende baserat på indata (idealiskt från kommandoradsargument eller alternativt via indata som läses av programmet). | ||
- Exempelprogram bör vara utformade enligt Kernighan och Ritchie-stil, med 4 mellanslags indragningar. (Undvik användning av TAB-tecken i källkoden!) Följande kommando kan användas för att formatera din källkod till något nära den föredragna stilen: | - Exempelprogram bör vara utformade enligt Kernighan och Ritchie-stil, med 4 mellanslags indragningar. (Undvik användning av TAB-tecken i källkoden!) Följande kommando kan användas för att formatera din källkod till något nära den föredragna stilen: | ||
Rad 541: | Rad 594: | ||
exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||
Undvik att använda följande former för att avsluta ett program: | Undvik att använda följande former för att avsluta ett program: | ||
exit(0); | exit(0); | ||
Rad 551: | Rad 604: | ||
.SS Program source | .SS Program source | ||
Gör alltid detta om den förklarande texten inkluderar en shell-sessionlogg. | Gör alltid detta om den förklarande texten inkluderar en shell-sessionlogg. | ||
Om du inkluderar en shell-sessionlogg som demonstrerar användningen av ett program eller annan systemfunktion: | Om du inkluderar en shell-sessionlogg som demonstrerar användningen av ett program eller annan systemfunktion: | ||
Rad 560: | Rad 613: | ||
För några exempel på hur exempelprogram bör se ut, se [[wait(2)]] och [[pipe(2)]]. | För några exempel på hur exempelprogram bör se ut, se [[wait(2)]] och [[pipe(2)]]. | ||
--- | |||
== EXEMPEL == | == EXEMPEL == | ||
Rad 568: | Rad 623: | ||
== COLOFON == | == COLOFON == | ||
Denna sida är en del av man-sidorna (Linux-kärnans och C-bibliotekets användarutrymmesgränssnitts-dokumentation) projekt. Information om projektet finns på [https://www.kernel.org/doc/man-pages/ | Denna sida är en del av man-sidorna (Linux-kärnans och C-bibliotekets användarutrymmesgränssnitts-dokumentation) projekt. Information om projektet finns på [man-pages-projektet](https://www.kernel.org/doc/man-pages/). Om du har en felrapport för denna man-sida, se [CONTRIBUTING](https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING). Denna sida erhölls från tarballen `man-pages-6.9.1.tar.gz` hämtad från [https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/](https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/) den 2024-06-26. Om du upptäcker några återgivningsproblem i denna HTML-version av sidan, eller om du tror att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i denna COLOFON (som inte är en del av den ursprungliga man-sidan), skicka ett mail till man-pages@man7.org. | ||
== Sidor som hänvisar till denna sida == | == Sidor som hänvisar till denna sida == | ||
[[attributes(7)]], [[intro(2)]], [[man(1)]], [[man(7)]], [[mdoc(7)]], [[pthreads(7)]], [[signal(7)]], [[signal-safety(7)]], [[syscalls(2)]], [[wait(2)]], [[waitid(2)]] | [[attributes(7)]], [[intro(2)]], [[man(1)]], [[man(7)]], [[mdoc(7)]], [[pthreads(7)]], [[signal(7)]], [[signal-safety(7)]], [[syscalls(2)]], [[wait(2)]], [[waitid(2)]] |
Nuvarande version från 26 november 2024 kl. 07.42
man-pages(7) – Konventioner för att skriva Linux man-sidor
NAMN
man-pages – konventioner för att skriva Linux man-sidor
SYNOPSIS
man [sektion] titel
BESKRIVNING
Denna sida beskriver de konventioner som bör användas när man skriver man-sidor för Linux man-pages-projektet, vilket dokumenterar användarutrymmets API som tillhandahålls av Linux-kärnan och GNU C-biblioteket. Projektet tillhandahåller således de flesta sidor i sektion 2, många av sidorna som visas i sektionerna 3, 4 och 7, och några av sidorna som visas i sektionerna 1, 5 och 8 på ett Linux-system. De konventioner som beskrivs på denna sida kan också vara användbara för författare som skriver man-sidor för andra projekt.
Sektioner i man-sidor
Manuella sektioner definieras traditionellt enligt följande:
- Användarkommandon (Program)
Kommandon som kan exekveras av användaren från en shell.
- Systemanrop
Funktioner som omsluter operationer utförda av kärnan.
- Biblioteksanrop
Alla biblioteksfunktioner exklusive systemanropsomslag (de flesta libc-funktioner).
- Speciella filer (enheter)
Filer som finns i `/dev` som ger åtkomst till enheter via kärnan.
- Filformat och konfigurationsfiler
Beskriver olika läsbara filformat och konfigurationsfiler.
- Spel
Spel och roliga små program som finns tillgängliga på systemet.
- Översikter, konventioner och diverse
Översikter eller beskrivningar av olika ämnen, konventioner och protokoll, teckenuppsättningsstandarder, standardfilsystemlayout och diverse andra saker.
- Systemhanteringskommandon
Kommandon som `mount(8)`, varav många endast root kan exekvera.
Makropaket
Nya man-sidor bör märkas upp med groff an.tmac-paketet som beskrivs i man(7). Detta val är främst för konsekvensens skull: den stora majoriteten av befintliga Linux man-sidor är markerade med dessa makron.
Konventioner för källkodsstruktur
Begränsa gärna källkodens linjelängd till högst cirka 75 tecken där det är möjligt. Detta hjälper till att undvika radbrytning i vissa e-postklienter när patchar skickas in inline.
Titelrad
Det första kommandot i en man-sida bör vara ett TH-kommando:
.TH titel sektion datum källa manual-sektion
Argumenten för kommandot är följande:
- titel: Titeln på man-sidan, skriven med versaler (t.ex. MAN-PAGES). - sektion: Sektionsnumret där man-sidan ska placeras (t.ex. 7). - datum: Datum för den senaste icke-triviala ändringen som gjordes i man-sidan. Datum bör skrivas i formatet ÅÅÅÅ-MM-DD. - källa: Namnet och versionen på projektet som tillhandahåller man-sidan (nödvändigtvis inte paketet som tillhandahåller funktionaliteten). - manual-sektion: Normalt bör detta vara tomt, eftersom standardvärdet kommer att vara bra.
Sektioner inom en man-sida
Nedan visas konventionella eller föreslagna sektioner. De flesta man-sidor bör inkludera åtminstone de markerade sektionerna. Ordna en ny man-sida så att sektionerna placeras i den ordning som visas i listan.
- NAME - LIBRARY [Normalt endast i sektionerna 2, 3] - SYNOPSIS - CONFIGURATION [Normalt endast i sektion 4] - DESCRIPTION - OPTIONS [Normalt endast i sektionerna 1, 8] - EXIT STATUS [Normalt endast i sektionerna 1, 8] - RETURN VALUE [Normalt endast i sektionerna 2, 3] - ERRORS [Vanligen endast i sektionerna 2, 3] - ENVIRONMENT - FILES - ATTRIBUTES [Normalt endast i sektionerna 2, 3] - VERSIONS [Normalt endast i sektionerna 2, 3] - STANDARDS - HISTORY - NOTES - CAVEATS - BUGS - EXAMPLES - AUTHORS [Avrådes] - REPORTING BUGS [Används inte i man-pages] - COPYRIGHT [Används inte i man-pages] - SEE ALSO
Där en traditionell rubrik skulle vara lämplig, vänligen använd den; denna typ av konsekvens kan göra informationen lättare att förstå. Om du måste kan du skapa egna rubriker om de gör saker lättare att förstå (detta kan vara särskilt användbart för sidor i sektionerna 4 och 5). Men innan du gör detta, överväg om du kan använda de traditionella rubrikerna, med några undersektioner (`.SS`) inom dessa sektioner.
Följande lista utvecklar innehållet i var och en av ovanstående sektioner.
NAME
Namnet på denna man-sida.
Se man(7) för viktiga detaljer om raden/raderna som ska följa efter `.SH NAME`-kommandot. Alla ord i denna rad (inklusive ordet omedelbart efter "\-") bör vara med gemener, förutom där engelska eller tekniska terminologiska konventioner dikterar annat.
LIBRARY
Biblioteket som tillhandahåller en symbol.
Det visar det vanliga namnet på biblioteket, och inom parentes namnet på biblioteksfilen och, om det behövs, länkarflaggan som behövs för att länka ett program mot det: `(libfoo[, -lfoo])`.
SYNOPSIS
En kort sammanfattning av kommandots eller funktionens gränssnitt.
För kommandon visar detta syntaxen för kommandot och dess argument (inklusive alternativ); fetstil används för text som den är och kursiv används för att indikera utbytbara argument. Hakparenteser (`[]`) omger valfria argument, vertikala streck (`|`) separerar val, och ellipser (`...`) kan upprepas. För funktioner visar det eventuella nödvändiga datadeklarationer eller `#include`-direktiv, följt av funktionsdeklarationen.
Där en funktionsmakro måste definieras för att få deklarationen av en funktion (eller en variabel) från en header-fil, bör `SYNOPSIS` indikera detta, som beskrivs i feature_test_macros(7).
CONFIGURATION
Konfigurationsdetaljer för en enhet.
Denna sektion förekommer normalt endast i sektion 4.
DESCRIPTION
En förklaring av vad programmet, funktionen eller formatet gör.
Diskutera hur det interagerar med filer och standard indata, och vad det producerar på standard utdata eller standard fel. Uteslut interna detaljer och implementationsdetaljer om de inte är kritiska för att förstå gränssnittet. Beskriv det vanliga fallet; för information om kommandoradsalternativ för ett program, använd sektionen OPTIONS.
När du beskriver nytt beteende eller nya flaggor för ett systemanrop eller biblioteksfunktion, var noga med att notera kärn- eller C-biblioteksversionen som introducerade förändringen. Den föredragna metoden att notera denna information för flaggor är som en del av en `.TP`-lista, i följande form (här för en ny systemanropsflagga):
XYZ_FLAG (sedan Linux 3.7) Beskrivning av flaggan...
Att inkludera versionsinformation är särskilt användbart för användare som är begränsade till att använda äldre kärn- eller C-biblioteksversioner (vilket är typiskt i inbyggda system, till exempel).
OPTIONS
En beskrivning av kommandoradsalternativ som accepteras av ett program och hur de ändrar dess beteende.
Denna sektion bör endast förekomma för man-sidor i sektionerna 1 och 8.
EXIT STATUS
En lista över möjliga utgångsstatusvärden för ett program och de villkor som orsakar att dessa värden returneras.
Denna sektion bör endast förekomma för man-sidor i sektionerna 1 och 8.
RETURN VALUE
För man-sidor i sektionerna 2 och 3 ger denna sektion en lista över de värden som biblioteksrutinen kommer att returnera till anroparen och de villkor som orsakar att dessa värden returneras.
ERRORS
För man-sidor i sektionerna 2 och 3 är detta en lista över de värden som kan placeras i `errno` vid ett fel, tillsammans med information om orsaken till felen.
Där flera olika villkor producerar samma fel, är den föredragna metoden att skapa separata listposter (med dubbla felnamn) för var och en av villkoren. Detta gör de separata villkoren tydliga, kan göra listan lättare att läsa, och tillåter metainformation (t.ex. kärnversion där villkoret först blev tillämpligt) att lättare markeras för varje villkor.
Fellistan bör vara i alfabetisk ordning.
ENVIRONMENT
En lista över alla miljövariabler som påverkar programmet eller funktionen och hur de påverkar det.
FILES
En lista över de filer som programmet eller funktionen använder, såsom konfigurationsfiler, startfiler och filer som programmet direkt arbetar på.
Ange hela sökvägen till dessa filer, och använd installationsprocessen för att modifiera katalogdelen så att den matchar användarpreferenser. För många program är standardinstallationsplatsen i `/usr/local`, så din basman-sida bör använda `/usr/local` som bas.
ATTRIBUTES
En sammanfattning av olika attribut för funktionen/funktionerna som dokumenteras på denna sida. Se attributes(7) för ytterligare detaljer.
VERSIONS
En sammanfattning av system där API:t fungerar annorlunda, eller där det finns ett liknande API.
STANDARDS
En beskrivning av eventuella standarder eller konventioner som relaterar till funktionen eller kommandot som beskrivs av man-sidan.
De föredragna termerna att använda för de olika standarderna listas som rubriker i standards(7).
Denna sektion bör notera de aktuella standarder som API:t följer.
Om API:t inte styrs av några standarder men vanligtvis finns på andra system, notera dem. Om anropet är Linux-specifikt eller GNU-specifikt, notera detta. Om det är tillgängligt i BSD-systemen, notera det.
Om denna sektion endast består av en lista över standarder (vilket den ofta gör), avsluta listan med en punkt ('.').
HISTORY
En kort sammanfattning av Linux-kärnans eller glibc-versionerna där ett systemanrop eller en biblioteksfunktion dök upp, eller förändrades avsevärt i sin funktion.
Som en allmän regel bör varje nytt gränssnitt inkludera en HISTORY-sektion i sin man-sida. Tyvärr inkluderar många befintliga man-sidor inte denna information (eftersom det inte fanns någon policy för att göra det när de skrevs). Patchar för att åtgärda detta är välkomna, men ur perspektivet för programmerare som skriver ny kod spelar denna information förmodligen bara roll i fallet med kärngränssnitt som har lagts till i Linux 2.4 eller senare (d.v.s. förändringar sedan Linux 2.2), och biblioteksfunktioner som har lagts till i glibc sedan glibc 2.1 (d.v.s. förändringar sedan glibc 2.0).
Man-sidan syscalls(2) ger också information om kärnversioner där olika systemanrop först dök upp.
Gamla versioner av standarder bör nämnas här, snarare än i STANDARDS, till exempel SUS, SUSv2 och XPG, eller SVr4 och 4.xBSD-implementationsstandarder.
NOTES
Diverse anteckningar.
För man-sidor i sektionerna 2 och 3 kan det vara användbart att inkludera undersektioner (`.SS`) med namnen "Linux Notes" och "glibc Notes".
I sektion 2, använd rubriken "C library/kernel differences" för att markera anteckningar som beskriver skillnaderna (om några) mellan C-bibliotekets omslagsfunktion för ett systemanrop och det råa systemanropsgränssnittet som tillhandahålls av kärnan.
CAVEATS
Varningar om typiska användarmisstag av ett API, som inte utgör en API-bugg eller designfel.
BUGS
En lista över begränsningar, kända defekter eller olägenheter, och andra tveksamma aktiviteter.
EXAMPLES
Ett eller flera exempel som demonstrerar hur denna funktion, fil eller kommando används.
För detaljer om att skriva exempelprogram, se avsnittet "Example programs" nedan.
AUTHORS
En lista över författare av dokumentationen eller programmet.
Användning av en AUTHORS-sektion avråds starkt. Generellt är det bättre att inte belamra varje sida med en lista över (över tid potentiellt många) författare; om du skriver eller avsevärt ändrar en sida, lägg till en copyright-notis som en kommentar i källfilen. Om du är författaren av en drivrutin och vill inkludera en adress för att rapportera buggar, placera detta under sektionen BUGS.
REPORTING BUGS
Man-pages-projektet använder inte en REPORTING BUGS-sektion i man-sidor. Information om att rapportera buggar tillhandahålls istället i den skriptgenererade COLOPHON-sektionen. Dock använder olika projekt en REPORTING BUGS-sektion. Det rekommenderas att placera den nära foten av sidan.
COPYRIGHT
Man-pages-projektet använder inte en COPYRIGHT-sektion i man-sidor. Copyright-information underhålls istället i sidans källkod. På sidor där denna sektion finns, rekommenderas det att placera den nära foten av sidan, precis ovanför SEE ALSO.
SEE ALSO
En kommaseparerad lista över relaterade man-sidor, eventuellt följt av andra relaterade sidor eller dokument.
Listan bör ordnas efter sektionsnummer och sedan alfabetiskt efter namn. Avsluta inte denna lista med en punkt.
Där SEE ALSO-listan innehåller många långa man-sidnamn, för att förbättra det visuella resultatet av utskriften kan det vara användbart att använda direktiven `.ad l` (justera inte höger) och `.nh` (avaktivera avstavning). Avstavning av individuella sidnamn kan förhindras genom att föregå ord med strängen `\%`.
Med tanke på den distribuerade, autonoma naturen av FOSS-projekt och deras dokumentation, är det ibland nödvändigt—och i många fall önskvärt—att SEE ALSO-sektionen inkluderar referenser till man-sidor som tillhandahålls av andra projekt.
---
FORMATERINGS- OCH SPRÅKKONVENTIONER
Följande undersektioner noterar några detaljer för föredragna formaterings- och språkkonventioner i olika sektioner av sidorna i man-pages-projektet.
SYNOPSIS
Omslut funktionsprototyperna i ett `.nf`/`.fi`-par för att förhindra textfyllning.
Generellt, där mer än en funktionsprototyp visas i `SYNOPSIS`, bör prototyperna inte separeras av tomma rader. Dock kan tomma rader (åstadkomna med `.P`) läggas till i följande fall:
- För att separera långa listor av funktionsprototyper i relaterade grupper (se till exempel list(3));
- I andra fall som kan förbättra läsbarheten.
I `SYNOPSIS` kan en lång funktionsprototyp behöva fortsättas på nästa rad. Fortsättningsraden indenteras enligt följande regler:
- Om det finns en enda sådan prototyp som behöver fortsättas, justera fortsättningsraden så att när sidan renderas på en fastbreddsteckensnittsenhet (t.ex. på en xterm) börjar fortsättningsraden precis under början av argumentlistan på raden ovan. (Undantag: indenteringen kan justeras om det behövs för att förhindra en mycket lång fortsättningsrad eller en ytterligare fortsättningsrad där funktionsprototypen är mycket lång.) Exempel:
int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);
- Men där flera funktioner i `SYNOPSIS` kräver fortsättningsrader, och funktionsnamnen har olika längder, justera alla fortsättningsrader så att de börjar i samma kolumn. Detta ger en trevligare rendering i PDF-utskrift (eftersom `SYNOPSIS` använder ett variabelt breddteckensnitt där mellanslag renderas smalare än de flesta tecken). Exempel:
int getopt(int argc, char * const argv[], const char *optstring); int getopt_long(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex);
RETURN VALUE
Den föredragna formuleringen för att beskriva hur `errno` ställs in är "errno sätts för att indikera felet" eller liknande. Denna formulering är konsekvent med den som används i både POSIX.1 och FreeBSD.
ATTRIBUTES
Observera följande:
- Omslut tabellen i denna sektion med ett `.ad l`/`.ad`-par för att inaktivera textfyllning och ett `.nh`/`.hy`-par för att avaktivera avstavning.
- Se till att tabellen upptar hela sidbredden genom att använda en `lbx`-beskrivning för en av kolumnerna (vanligtvis den första kolumnen, men i vissa fall den sista kolumnen om den innehåller mycket text).
- Använd `T{/}`-makropar flitigt för att tillåta tabellceller att brytas över flera rader (tänk också på att sidor ibland kan renderas till en bredd på mindre än 80 kolumner).
För exempel på allt ovanstående, se källkoden för olika sidor.
---
STILGUIDE
Följande undersektioner beskriver den föredragna stilen för man-pages-projektet. För detaljer som inte täcks nedan är "Chicago Manual of Style" vanligtvis en bra källa; försök också att söka efter befintlig användning i projektets källträd.
Användning av könsneutralt språk
Så långt som möjligt, använd könsneutralt språk i texten i man-sidor. Användning av "de" ("dem", "deras") som ett könsneutralt singularpronomen är acceptabelt.
Formateringskonventioner för man-sidor som beskriver kommandon
För man-sidor som beskriver ett kommando (typiskt i sektionerna 1 och 8), specificeras argumenten alltid med kursiv stil, även i `SYNOPSIS`-sektionen.
Namnet på kommandot och dess alternativ bör alltid formateras i fetstil.
Formateringskonventioner för man-sidor som beskriver funktioner
För man-sidor som beskriver funktioner (typiskt i sektionerna 2 och 3), specificeras argumenten alltid med kursiv stil, även i `SYNOPSIS`-sektionen, där resten av funktionen specificeras i fetstil:
int myfunction(int argc, char **argv);
Variabelnamn bör, liksom argumentnamn, specificeras i kursiv stil.
Alla referenser till ämnet för den aktuella man-sidan bör skrivas med namnet i fetstil följt av ett par parenteser i normal stil. Till exempel, i man-sidan fcntl(2), skulle referenser till sidans ämne skrivas som: fcntl(). Det föredragna sättet att skriva detta i källfilen är:
.BR fcntl ()
(Denna metod gör det lättare att skriva verktyg som analyserar man-sidans källfiler.)
Använd semantiska radbrytningar
I källan till en man-sida bör nya meningar påbörjas på nya rader, långa meningar bör delas upp i rader vid klausulbrytningar (kommatecken, semikolon, kolon osv.), och långa klausuler bör delas upp vid frasgränser. Denna konvention, ibland känd som "semantiska radbrytningar", gör det lättare att se effekten av patchar, som ofta verkar på nivån av enskilda meningar, klausuler eller fraser.
Listor
Det finns olika typer av listor:
- **Märkta stycken**
Dessa används för en lista över etiketter och deras beskrivningar. När etiketterna är konstanter (antingen makron eller nummer) är de i fetstil. Använd `.TP`-makrot.
Ett exempel är denna undersektion "Märkta stycken" själv.
- **Ordnade listor**
Element föregås av ett nummer inom parentes (1), (2). Dessa representerar en uppsättning steg som har en ordning.
När det finns delsteg kommer de att numreras som (4.2).
- **Positionslistor**
Element föregås av ett nummer (index) inom hakparenteser [4], [5]. Dessa representerar fält i en uppsättning. Det första indexet blir:
- 0: När det representerar fält i en C-datastruktur, för att vara konsekvent med arrayer. - 1: När det representerar fält i en fil, för att vara konsekvent med verktyg som cut(1).
- **Alternativlistor**
Element föregås av en bokstav inom parentes (a), (b). Dessa representerar en uppsättning (normalt) exklusiva alternativ.
- **Punktlistor**
Element föregås av punktsymboler (`\[bu]`). Allt som inte passar in någon annanstans täcks vanligtvis av denna typ av lista.
- **Numrerade noter**
Inte riktigt en lista, men syntaxen är identisk med "positionslistor".
Det bör alltid vara exakt 2 mellanslag mellan listsymbolen och elementen. Detta gäller inte för "märkta stycken", som använder standardindenteringsreglerna.
Formateringskonventioner (allmänna)
Stycken bör separeras med lämpliga markörer (vanligtvis antingen `.P` eller `.IP`). Separera inte stycken med tomma rader, eftersom detta resulterar i dålig rendering i vissa utskriftsformat (såsom PostScript och PDF).
Filnamn (vare sig det är sökvägar eller referenser till header-filer) är alltid i kursiv stil (t.ex. `<stdio.h>`), förutom i `SYNOPSIS`-sektionen, där inkluderade filer är i fetstil (t.ex. `#include <stdio.h>`). När du hänvisar till en standardheader-fil inkludera, specificera header-filen omgiven av vinkelparenteser, på det vanliga C-sättet (t.ex. `<stdio.h>`).
Speciella makron, som vanligtvis är i versaler, är i fetstil (t.ex. `MAXINT`). Undantag: använd inte fetstil för `NULL`.
När du upprättar en lista över felkoder är koderna i fetstil (denna lista använder vanligtvis `.TP`-makrot).
Kompletta kommandon bör, om de är långa, skrivas som en indenterad rad för sig själva, med en tom rad före och efter kommandot, till exempel
man 7 man-pages
Om kommandot är kort kan det inkluderas inline i texten, i kursiv stil, till exempel, `man 7 man-pages`. I detta fall kan det vara värt att använda icke-brytande mellanslag (`~`) på lämpliga ställen i kommandot. Kommandoalternativ bör skrivas i kursiv stil (t.ex. `-l`).
Uttryck, om de inte skrivs på en separat indenterad rad, bör specificeras i kursiv stil. Återigen kan användningen av icke-brytande mellanslag vara lämplig om uttrycket är inlinat med normal text.
När du visar exempel på shell-sessioner bör användarinmatning formateras i fetstil, till exempel
$ date Thu Jul 7 13:01:27 CEST 2016
Alla referenser till en annan man-sida bör skrivas med namnet i fetstil, alltid följt av sektionsnumret, formaterat i normal stil, utan några mellanliggande mellanslag (t.ex. intro(2)). Det föredragna sättet att skriva detta i källfilen är:
.BR intro (2)
(Genom att inkludera sektionsnumret i korsreferenser kan verktyg som man2html(1) skapa korrekt hyperlänkade sidor.)
Kontrolltecken bör skrivas i fetstil, utan citattecken; till exempel, `^X`.
Stavning
Från och med version 2.59 följer man-pages amerikanska stavningskonventioner (tidigare fanns det en slumpmässig blandning av brittisk och amerikansk stavning); vänligen skriv alla nya sidor och patchar enligt dessa konventioner.
Förutom de välkända stavningsskillnaderna finns det några andra subtiliteter att vara uppmärksam på:
- Amerikansk engelska tenderar att använda formerna "backward", "upward", "toward" och så vidare snarare än de brittiska formerna "backwards", "upwards", "towards" och så vidare.
- Åsikterna är delade om "acknowledgement" vs "acknowledgment". Den senare är dominerande, men inte universell användning i amerikansk engelska. POSIX och BSD-licensen använder den tidigare stavningen. I Linux man-pages-projektet använder vi "acknowledgement".
BSD versionsnummer
Den klassiska ordningen för att skriva BSD-versionsnummer är `x.yBSD`, där `x.y` är versionsnumret (t.ex. `4.2BSD`). Undvik former som `BSD 4.3`.
Versalisering
I undersektioner (`.SS`) bör du versalisera det första ordet i rubriken, men annars använda gemener, förutom där engelsk användning (t.ex. egennamn) eller programmeringsspråkskrav (t.ex. identifierarnamn) dikterar annat. Till exempel:
.SS Unicode under Linux
Indentering av strukturdefinitioner, shell-sessionloggar och så vidare
När strukturdefinitioner, shell-sessionloggar och så vidare inkluderas i löpande text, indenteras de med 4 mellanslag (d.v.s. ett block inneslutet av `.in +4n` och `.in`), formateras de med `.EX` och `.EE`-makron, och omges av lämpliga styckemarkörer (antingen `.P` eller `.IP`). Till exempel:
.P .in +4n .EX int main(int argc, char *argv[]) { return 0; } .EE .in .P
Föredragna termer
Följande tabell listar några föredragna termer att använda i man-sidor, främst för att säkerställa konsekvens över sidor.
Term | Undvik att använda | Noteringar |
---|---|---|
bit mask | bitmask | |
built-in | builtin | |
Epoch | epoch | För UNIX Epoch (00:00:00, 1 jan 1970 UTC) |
filename | file name | |
filesystem | file system | |
hostname | host name | |
inode | i-node | |
lowercase | lower case, lower-case | |
nonzero | non-zero | |
pathname | path name | |
pseudoterminal | pseudo-terminal | |
privileged port | reserved port, system port | |
real-time | realtime, real time | |
run time | runtime | |
saved set-group-ID | saved group ID, saved set-GID | |
saved set-user-ID | saved user ID, saved set-UID | |
set-group-ID | set-GID, setgid | |
set-user-ID | set-UID, setuid | |
superuser | super user, super-user | |
superblock | super block, super-block | |
symbolic link | symlink | |
timestamp | time stamp | |
timezone | time zone | |
uppercase | upper case, upper-case | |
usable | useable | |
user space | userspace | |
username | user name | |
x86-64 | x86_64 | Förutom när man refererar till resultatet av `uname -m` eller liknande |
zeros | zeroes |
Se även diskussionen om "Bindestreckning av attributiva sammansättningar" nedan.
Termer att undvika
Följande tabell listar några termer att undvika att använda i man-sidor, tillsammans med några föreslagna alternativ, främst för att säkerställa konsekvens över sidor.
Undvik | Använd istället | Noteringar |
---|---|---|
32bit | 32-bit | Samma för 8-bit, 16-bit osv. |
current process | calling process | Ett vanligt misstag gjort av kärnprogrammerare när de skriver man-sidor |
manpage | man-sida, manual sida | |
minus infinity | negative infinity | |
non-root | unprivileged user | |
non-superuser | unprivileged user | |
nonprivileged | unprivileged | |
OS | operating system | |
plus infinity | positive infinity | |
pty | pseudoterminal | |
tty | terminal | |
Unices | UNIX systems | |
Unixes | UNIX systems |
Varumärken
Använd korrekt stavning och skiftläge för varumärken. Följande är en lista över de korrekta stavningarna av olika relevanta varumärken som ibland stavas fel:
- DG/UX - HP-UX - UNIX - UnixWare
NULL, NUL, nullpekare och nullbyte
En nullpekare är en pekare som pekar på ingenting, och indikeras normalt av konstanten `NULL`. Å andra sidan är `NUL` nullbyten, en byte med värdet 0, representerad i C via teckenkonstanten `'\0'`.
Den föredragna termen för pekaren är "nullpekare" eller helt enkelt "NULL"; undvik att skriva "NULL-pekare".
Den föredragna termen för byten är "nullbyte". Undvik att skriva "NUL", eftersom det är för lätt att förväxla med "NULL". Undvik också termerna "zerobyte" och "nulltecken". Byten som terminerar en C-sträng bör beskrivas som "det terminerande nullbytet"; strängar kan beskrivas som "nullterminerade", men undvik användningen av "NUL-terminerade".
Hyperlänkar
För hyperlänkar, använd `.UR`/`.UE`-makropar (se groff_man(7)). Detta producerar korrekta hyperlänkar som kan användas i en webbläsare när man renderar en sida med, säg:
BROWSER=firefox man -H sidnamn
Användning av t.ex., dvs., osv., alias och liknande
Generellt bör användningen av förkortningar såsom "t.ex.", "dvs.", "osv.", "jfr.", och "alias" undvikas, till förmån för lämpliga fullständiga formuleringar ("till exempel", "det vill säga", "och så vidare", "jämför med", "även känd som").
Den enda platsen där sådana förkortningar kan vara acceptabla är i korta parentetiska inskjutningar (t.ex. som denna).
Inkludera alltid punkter i sådana förkortningar, som visas här. Dessutom bör "t.ex." och "dvs." alltid följas av ett kommatecken.
Tankstreck
Sättet att skriva ett tankstreck—tecknet som visas i vardera änden av denna fras—i *roff är med makrot `\[em]`. (På en ASCII-terminal renderas ett tankstreck typiskt som två bindestreck, men i andra typografiska sammanhang renderas det som ett långt streck.) Tankstreck bör skrivas utan omgivande mellanslag.
Bindestreckning av attributiva sammansättningar
Sammansatta termer bör bindestreckas när de används attributivt (d.v.s. för att kvalificera ett efterföljande substantiv). Några exempel:
- 32-bitars värde - kommandoradsargument - flyttal - körtidskontroll - användarutrymmesfunktion - bredteckensträng
Bindestreckning med multi, non, pre, re, sub, och så vidare
Den allmänna tendensen i modern engelska är att inte använda bindestreck efter prefix som "multi", "non", "pre", "re", "sub" och så vidare. Man-sidor bör generellt följa denna regel när dessa prefix används i naturliga engelska konstruktioner med enkla suffix. Följande lista ger några exempel på de föredragna formerna:
- interprocess - multithreaded - multiprocess - nonblocking - nondefault - nonempty - noninteractive - nonnegative - nonportable - nonzero - preallocated - precreate - prerecorded - reestablished - reinitialize - rearm - reread - subcomponent - subdirectory - subsystem
Bindestreck bör behållas när prefixen används i icke-standardiserade engelska ord, med varumärken, egennamn, akronymer eller sammansatta termer. Några exempel:
- non-ASCII - non-English - non-NULL - non-real-time
Slutligen, notera att "re-create" och "recreate" är två olika verb, och det förra är förmodligen vad du vill ha.
Generera optimala tecken
Där ett riktigt minustecken krävs (t.ex. för tal som -1, för man-sidkorsreferenser som utf-8(7), eller när man skriver alternativ som har ett ledande streck, som i `ls -l`), använd följande form i man-sidans källkod:
\-
Denna riktlinje gäller också för kodexempel.
Användningen av riktiga minustecken tjänar följande syften:
- Att ge bättre renderingar på olika mål än ASCII-terminaler, särskilt i PDF och på Unicode/UTF-8-kapabla terminaler. - Att generera tecken som när de kopieras från renderade sidor kommer att producera riktiga minustecken när de klistras in i en terminal.
För att producera osnedställda enkla citattecken som renderar väl i ASCII, UTF-8 och PDF, använd `\[aq]` ("apostrof-citattecken"); till exempel
\[aq]C\[aq]
där C är det citerade tecknet. Denna riktlinje gäller också för teckenkonstanter som används i kodexempel.
Där ett riktigt cirkumflex (`^`) som renderar väl både i en terminal och i PDF krävs, använd `\[ha]`. Detta är särskilt nödvändigt i kodexempel för att få ett snyggt renderat cirkumflex när man renderar till PDF.
Att använda ett naket `~`-tecken resulterar i en dålig rendering i PDF. Använd istället `\[ti]`. Detta är särskilt nödvändigt i kodexempel för att få en snyggt renderad tilde när man renderar till PDF.
Exempelprogram och shell-sessioner
Man-sidor kan inkludera exempelprogram som demonstrerar hur man använder ett systemanrop eller en biblioteksfunktion. Notera dock följande:
- Exempelprogram bör skrivas i C. - Ett exempelprogram är nödvändigt och användbart endast om det demonstrerar något utöver vad som lätt kan tillhandahållas i en textuell beskrivning av gränssnittet. Ett exempelprogram som inte gör något annat än att anropa ett gränssnitt tjänar vanligtvis lite syfte. - Exempelprogram bör idealt vara korta (t.ex. ett bra exempel kan ofta tillhandahållas på mindre än 100 rader kod), även om längre program i vissa fall kan vara nödvändiga för att ordentligt illustrera användningen av ett API. - Uttrycksfull kod uppskattas. - Kommentarer bör inkluderas där de är hjälpsamma. Fullständiga meningar i fristående kommentarer bör avslutas med en punkt. Punkter bör generellt utelämnas i "tagg"-kommentarer (d.v.s. kommentarer som placeras på samma kodrad); sådana kommentarer är i alla fall vanligtvis korta fraser snarare än fullständiga meningar. - Exempelprogram bör göra felkontroller efter systemanrop och biblioteksfunktionsanrop. - Exempelprogram bör vara kompletta och kompilera utan varningar när de kompileras med `cc -Wall`. - Där det är möjligt och lämpligt bör exempelprogram tillåta experimentering genom att variera deras beteende baserat på indata (idealiskt från kommandoradsargument eller alternativt via indata som läses av programmet). - Exempelprogram bör vara utformade enligt Kernighan och Ritchie-stil, med 4 mellanslags indragningar. (Undvik användning av TAB-tecken i källkoden!) Följande kommando kan användas för att formatera din källkod till något nära den föredragna stilen:
indent -npro -kr -i4 -ts4 -sob -l72 -ss -nut -psl prog.c
- För konsekvens bör alla exempelprogram avslutas med antingen:
exit(EXIT_SUCCESS); exit(EXIT_FAILURE);
Undvik att använda följande former för att avsluta ett program:
exit(0); exit(1); return n;
- Om det finns omfattande förklarande text före programkällkoden, markera av källkoden med en undersektion med rubriken "Program source", som i:
.SS Program source
Gör alltid detta om den förklarande texten inkluderar en shell-sessionlogg.
Om du inkluderar en shell-sessionlogg som demonstrerar användningen av ett program eller annan systemfunktion:
- Placera sessionloggen ovanför källkodlistan. - Indentera sessionloggen med fyra mellanslag. - Fetstila användarinmatningstexten för att skilja den från utdata producerad av systemet.
För några exempel på hur exempelprogram bör se ut, se wait(2) och pipe(2).
---
EXEMPEL
För kanoniska exempel på hur man-sidor i man-pages-paketet bör se ut, se pipe(2) och fcntl(2).
SEE ALSO
man(1), man2html(1), attributes(7), groff(7), groff_man(7), man(7), mdoc(7)
COLOFON
Denna sida är en del av man-sidorna (Linux-kärnans och C-bibliotekets användarutrymmesgränssnitts-dokumentation) projekt. Information om projektet finns på [man-pages-projektet](https://www.kernel.org/doc/man-pages/). Om du har en felrapport för denna man-sida, se [CONTRIBUTING](https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING). Denna sida erhölls från tarballen `man-pages-6.9.1.tar.gz` hämtad från [1](https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/) den 2024-06-26. Om du upptäcker några återgivningsproblem i denna HTML-version av sidan, eller om du tror att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i denna COLOFON (som inte är en del av den ursprungliga man-sidan), skicka ett mail till man-pages@man7.org.
Sidor som hänvisar till denna sida
attributes(7), intro(2), man(1), man(7), mdoc(7), pthreads(7), signal(7), signal-safety(7), syscalls(2), wait(2), waitid(2)