diff options
Diffstat (limited to 'man/man7')
46 files changed, 1024 insertions, 703 deletions
diff --git a/man/man7/aio.7 b/man/man7/aio.7 index eca1ae3fad..518ba01365 100644 --- a/man/man7/aio.7 +++ b/man/man7/aio.7 @@ -200,20 +200,20 @@ and these are satisfied by two lines of input containing .P .in +4n .EX -$ \fB./a.out /dev/stdin /dev/stdin\fP +.RB $ " ./a.out /dev/stdin /dev/stdin" ; opened /dev/stdin on descriptor 3 opened /dev/stdin on descriptor 4 aio_error(): for request 0 (descriptor 3): In progress for request 1 (descriptor 4): In progress -\fBabc\fP +.B abc I/O completion signal received aio_error(): for request 0 (descriptor 3): I/O succeeded for request 1 (descriptor 4): In progress aio_error(): for request 1 (descriptor 4): In progress -\fBx\fP +.B x I/O completion signal received aio_error(): for request 1 (descriptor 4): I/O succeeded diff --git a/man/man7/arp.7 b/man/man7/arp.7 index 773005b614..534e75d15a 100644 --- a/man/man7/arp.7 +++ b/man/man7/arp.7 @@ -111,7 +111,7 @@ is a zero-terminated string which names a device. tab(:) allbox; c s l l. -\fIarp_flags\fR +\f[I]arp_flags\f[] flag:meaning ATF_COM:Lookup complete ATF_PERM:Permanent entry diff --git a/man/man7/ascii.7 b/man/man7/ascii.7 index 0742647761..9f5ba861e3 100644 --- a/man/man7/ascii.7 +++ b/man/man7/ascii.7 @@ -25,7 +25,7 @@ The international counterpart of ASCII is known as ISO/IEC\~646-IRV. .P The following table contains the 128 ASCII characters. .P -C program \f(CW\[aq]\[rs]X\[aq]\fP escapes are noted. +C program \f[CW]\[aq]\[rs]X\[aq]\f[] escapes are noted. .P .EX .TS diff --git a/man/man7/boot.7 b/man/man7/boot.7 index b66f6596e3..2eb4660c16 100644 --- a/man/man7/boot.7 +++ b/man/man7/boot.7 @@ -14,7 +14,11 @@ .SH NAME boot \- System bootup process based on UNIX System V Release 4 .SH DESCRIPTION -The \fBbootup process\fR (or "\fBboot sequence\fR") varies in details +The +.B bootup process +(or +.RB \[dq] boot\~sequence \[dq]) +varies in details among systems, but can be roughly divided into phases controlled by the following components: .IP (1) 5 @@ -24,7 +28,10 @@ operating system (OS) loader .IP (3) kernel .IP (4) -root user-space process (\fIinit\fR and \fIinittab\fR) +root user-space process +.RB ( init (8) +and +.BR inittab (5)) .IP (5) boot scripts .P @@ -33,22 +40,26 @@ Each of these is described below in more detail. After power-on or hard reset, control is given to a program stored in read-only memory (normally PROM); for historical reasons involving the personal -computer, this program is often called "the \fBBIOS\fR". +computer, this program is often called "the +.BR BIOS \[dq]. .P This program normally performs a basic self-test of the machine and accesses nonvolatile memory to read further parameters. This memory in the PC is battery-backed CMOS memory, so most people -refer to it as "the \fBCMOS\fR"; outside -of the PC world, it is usually called "the \fBNVRAM\fR" +refer to it as "the +.BR CMOS \[dq]; +outside +of the PC world, it is usually called "the +.BR NVRAM \[dq] (nonvolatile RAM). .P The parameters stored in the NVRAM vary among systems, but as a minimum, they should specify which device can supply an OS loader, or at least which devices may be probed for one; such a device is known as "the -\fBboot device\fR". +.BR boot\~device \[dq]. The hardware boot stage loads the OS loader from a fixed position on the boot device, and then transfers control to it. .TP @@ -66,7 +77,8 @@ isn't functioning) and to pass optional parameters to the kernel. .P In a traditional PC, the OS loader is located in the initial 512-byte block -of the boot device; this block is known as "the \fBMBR\fR" +of the boot device; this block is known as "the +.BR MBR \[dq] (Master Boot Record). .P In most systems, the OS loader is very @@ -89,8 +101,9 @@ In Linux, the OS loader is often .SS Kernel When the kernel is loaded, it initializes various components of the computer and operating system; each portion of software -responsible for such a task is usually consider "a \fBdriver\fR" for -the applicable component. +responsible for such a task is usually consider "a +.BR driver \[dq] +for the applicable component. The kernel starts the virtual memory swapper (it is a kernel process, called "kswapd" in a modern Linux kernel), and mounts some filesystem at the root path, @@ -169,13 +182,18 @@ Running the script without parameters displays the possible arguments. .SS Sequencing directories To make specific scripts start/stop at specific run levels and in a -specific order, there are \fIsequencing directories\fR, normally -of the form \fI/etc/rc[0\-6S].d\fR. +specific order, there are +.IR sequencing\~directories , +normally of the form +.IR /etc/rc[0\-6S].d . In each of these directories, -there are links (usually symbolic) to the scripts in the \fI/etc/init.d\fR +there are links (usually symbolic) to the scripts in the +.I /etc/init.d directory. .P -A primary script (usually \fI/etc/rc\fR) is called from +A primary script (usually +.IR /etc/rc ) +is called from .BR inittab (5); this primary script calls each service's script via a link in the relevant sequencing directory. @@ -185,36 +203,49 @@ Each link whose name begins with \[aq]K\[aq] is called with the argument "stop" (thereby stopping the service). .P To define the starting or stopping order within the same run level, -the name of a link contains an \fBorder-number\fR. +the name of a link contains an +.BR order-number . Also, for clarity, the name of a link usually ends with the name of the service to which it refers. For example, -the link \fI/etc/rc2.d/S80sendmail\fR starts the +the link +.I /etc/rc2.d/S80sendmail +starts the .BR sendmail (8) service on run level 2. -This happens after \fI/etc/rc2.d/S12syslog\fR is run -but before \fI/etc/rc2.d/S90xfs\fR is run. +This happens after +.I /etc/rc2.d/S12syslog +is run +but before +.I /etc/rc2.d/S90xfs +is run. .P To manage these links is to manage the boot order and run levels; under many systems, there are tools to help with this task (e.g., .BR chkconfig (8)). .SS Boot configuration -A program that provides a service is often called a "\fBdaemon\fR". +A program that provides a service is often called a +.RB \[dq] daemon \[dq]. Usually, a daemon may receive various command-line options and parameters. To allow a system administrator to change these inputs without editing an entire boot script, some separate configuration file is used, and is located in a specific directory where an associated boot script may find it -(\fI/etc/sysconfig\fR on older Red Hat systems). +.RI ( /etc/sysconfig +on older Red Hat systems). .P In older UNIX systems, such a file contained the actual command line options for a daemon, but in modern Linux systems (and also in HP-UX), it just contains shell variables. -A boot script in \fI/etc/init.d\fR reads and includes its configuration -file (that is, it "\fBsources\fR" its configuration file) and then uses +A boot script in +.I /etc/init.d +reads and includes its configuration +file (that is, it +.RB \[dq] sources \[dq] +its configuration file) and then uses the variable values. .SH FILES .IR /etc/init.d/ , diff --git a/man/man7/capabilities.7 b/man/man7/capabilities.7 index 2cedf3267a..ceea2d2c22 100644 --- a/man/man7/capabilities.7 +++ b/man/man7/capabilities.7 @@ -1773,7 +1773,7 @@ Something like: .P .in +4n .EX -$ \fBsudo strace \-o trace.log \-u ceci ./myprivprog\fP +.RB $ " sudo strace \-o trace.log \-u ceci ./myprivprog" .EE .in .P diff --git a/man/man7/cgroup_namespaces.7 b/man/man7/cgroup_namespaces.7 index 10f16c666c..642b5fa383 100644 --- a/man/man7/cgroup_namespaces.7 +++ b/man/man7/cgroup_namespaces.7 @@ -56,10 +56,10 @@ use as part of the demonstration below: .P .in +4n .EX -# \fBmkdir \-p /sys/fs/cgroup/freezer/sub2\fP -# \fBsleep 10000 &\fP # Create a process that lives for a while +.RB # " mkdir \-p /sys/fs/cgroup/freezer/sub2" ; +.RB # " sleep 10000 &" # Create a process that lives for a while [1] 20124 -# \fBecho 20124 > /sys/fs/cgroup/freezer/sub2/cgroup.procs\fP +.RB # " echo 20124 > /sys/fs/cgroup/freezer/sub2/cgroup.procs" ; .EE .in .P @@ -69,11 +69,11 @@ hierarchy and put the shell into that cgroup: .P .in +4n .EX -# \fBmkdir \-p /sys/fs/cgroup/freezer/sub\fP -# \fBecho $$\fP # Show PID of this shell +.RB # " mkdir \-p /sys/fs/cgroup/freezer/sub" ; +.RB # " echo $$" "; # Show PID of this shell" 30655 -# \fBecho 30655 > /sys/fs/cgroup/freezer/sub/cgroup.procs\fP -# \fBcat /proc/self/cgroup | grep freezer\fP +.RB # " echo 30655 > /sys/fs/cgroup/freezer/sub/cgroup.procs" ; +.RB # " cat /proc/self/cgroup | grep freezer" ; 7:freezer:/sub .EE .in @@ -84,7 +84,7 @@ to create a process running a new shell in new cgroup and mount namespaces: .P .in +4n .EX -# \fBPS1="sh2# " unshare \-Cm bash\fP +.RB # " PS1='sh2# ' unshare \-Cm bash" ; .EE .in .P @@ -100,11 +100,11 @@ with PID 1), and the process in the sibling cgroup .P .in +4n .EX -sh2# \fBcat /proc/self/cgroup | grep freezer\fP +.RB sh2# " cat /proc/self/cgroup | grep freezer" ; 7:freezer:/ -sh2# \fBcat /proc/1/cgroup | grep freezer\fP +.RB sh2# " cat /proc/1/cgroup | grep freezer" ; 7:freezer:/.. -sh2# \fBcat /proc/20124/cgroup | grep freezer\fP +.RB sh2# " cat /proc/20124/cgroup | grep freezer" ; 7:freezer:/../sub2 .EE .in @@ -129,7 +129,7 @@ we see the following anomaly: .P .in +4n .EX -sh2# \fBcat /proc/self/mountinfo | grep freezer\fP +.RB sh2# " cat /proc/self/mountinfo | grep freezer" ; 155 145 0:32 /.. /sys/fs/cgroup/freezer ... .EE .in @@ -151,11 +151,11 @@ new cgroup namespace), after which we see the expected results: .P .in +4n .EX -sh2# \fBmount \-\-make\-rslave /\fP # Don\[aq]t propagate mount events +.RB sh2# " mount \-\-make\-rslave /" "; # Don\[aq]t propagate mount events" # to other namespaces -sh2# \fBumount /sys/fs/cgroup/freezer\fP -sh2# \fBmount \-t cgroup \-o freezer freezer /sys/fs/cgroup/freezer\fP -sh2# \fBcat /proc/self/mountinfo | grep freezer\fP +.RB sh2# " umount /sys/fs/cgroup/freezer" ; +.RB sh2# " mount \-t cgroup \-o freezer freezer /sys/fs/cgroup/freezer" ; +.RB sh2# " cat /proc/self/mountinfo | grep freezer" ; 155 145 0:32 / /sys/fs/cgroup/freezer rw,relatime ... .EE .in diff --git a/man/man7/cgroups.7 b/man/man7/cgroups.7 index d12bf8297e..6a8e5bd6a3 100644 --- a/man/man7/cgroups.7 +++ b/man/man7/cgroups.7 @@ -242,7 +242,7 @@ Additionally, the availability of the cgroups feature is governed by the .B CONFIG_CGROUPS kernel configuration option. .TP -.IR cpu " (since Linux 2.6.24; " \fBCONFIG_CGROUP_SCHED\fP ) +.IR cpu " (since Linux 2.6.24; " \f[B]CONFIG_CGROUP_SCHED\f[] ) Cgroups can be guaranteed a minimum number of "CPU shares" when a system is busy. This does not limit a cgroup's CPU usage if the CPUs are not busy. @@ -266,7 +266,7 @@ Further information can be found in the kernel source file .I Documentation/scheduler/sched\-bwc.txt in Linux 5.2 and earlier). .TP -.IR cpuacct " (since Linux 2.6.24; " \fBCONFIG_CGROUP_CPUACCT\fP ) +.IR cpuacct " (since Linux 2.6.24; " \f[B]CONFIG_CGROUP_CPUACCT\f[] ) This provides accounting for CPU usage by groups of processes. .IP Further information can be found in the kernel source file @@ -275,7 +275,7 @@ Further information can be found in the kernel source file .I Documentation/cgroup\-v1/cpuacct.txt in Linux 5.2 and earlier). .TP -.IR cpuset " (since Linux 2.6.24; " \fBCONFIG_CPUSETS\fP ) +.IR cpuset " (since Linux 2.6.24; " \f[B]CONFIG_CPUSETS\f[] ) This cgroup can be used to bind the processes in a cgroup to a specified set of CPUs and NUMA nodes. .IP @@ -286,7 +286,7 @@ Further information can be found in the kernel source file in Linux 5.2 and earlier). . .TP -.IR memory " (since Linux 2.6.25; " \fBCONFIG_MEMCG\fP ) +.IR memory " (since Linux 2.6.25; " \f[B]CONFIG_MEMCG\f[] ) The memory controller supports reporting and limiting of process memory, kernel memory, and swap used by cgroups. .IP @@ -296,7 +296,7 @@ Further information can be found in the kernel source file .I Documentation/cgroup\-v1/memory.txt in Linux 5.2 and earlier). .TP -.IR devices " (since Linux 2.6.26; " \fBCONFIG_CGROUP_DEVICE\fP ) +.IR devices " (since Linux 2.6.26; " \f[B]CONFIG_CGROUP_DEVICE\f[] ) This supports controlling which processes may create (mknod) devices as well as open them for reading or writing. The policies may be specified as allow-lists and deny-lists. @@ -309,7 +309,7 @@ Further information can be found in the kernel source file .I Documentation/cgroup\-v1/devices.txt in Linux 5.2 and earlier). .TP -.IR freezer " (since Linux 2.6.28; " \fBCONFIG_CGROUP_FREEZER\fP ) +.IR freezer " (since Linux 2.6.28; " \f[B]CONFIG_CGROUP_FREEZER\f[] ) The .I freezer cgroup can suspend and restore (resume) all processes in a cgroup. @@ -325,7 +325,7 @@ Further information can be found in the kernel source file .I Documentation/cgroup\-v1/freezer\-subsystem.txt in Linux 5.2 and earlier). .TP -.IR net_cls " (since Linux 2.6.29; " \fBCONFIG_CGROUP_NET_CLASSID\fP ) +.IR net_cls " (since Linux 2.6.29; " \f[B]CONFIG_CGROUP_NET_CLASSID\f[] ) This places a classid, specified for the cgroup, on network packets created by a cgroup. These classids can then be used in firewall rules, @@ -340,7 +340,7 @@ Further information can be found in the kernel source file .I Documentation/cgroup\-v1/net_cls.txt in Linux 5.2 and earlier). .TP -.IR blkio " (since Linux 2.6.33; " \fBCONFIG_BLK_CGROUP\fP ) +.IR blkio " (since Linux 2.6.33; " \f[B]CONFIG_BLK_CGROUP\f[] ) The .I blkio cgroup controls and limits access to specified block devices by @@ -360,14 +360,14 @@ Further information can be found in the kernel source file .I Documentation/cgroup\-v1/blkio\-controller.txt in Linux 5.2 and earlier). .TP -.IR perf_event " (since Linux 2.6.39; " \fBCONFIG_CGROUP_PERF\fP ) +.IR perf_event " (since Linux 2.6.39; " \f[B]CONFIG_CGROUP_PERF\f[] ) This controller allows .I perf monitoring of the set of processes grouped in a cgroup. .IP Further information can be found in the kernel source files .TP -.IR net_prio " (since Linux 3.3; " \fBCONFIG_CGROUP_NET_PRIO\fP ) +.IR net_prio " (since Linux 3.3; " \f[B]CONFIG_CGROUP_NET_PRIO\f[] ) This allows priorities to be specified, per network interface, for cgroups. .IP Further information can be found in the kernel source file @@ -376,7 +376,7 @@ Further information can be found in the kernel source file .I Documentation/cgroup\-v1/net_prio.txt in Linux 5.2 and earlier). .TP -.IR hugetlb " (since Linux 3.5; " \fBCONFIG_CGROUP_HUGETLB\fP ) +.IR hugetlb " (since Linux 3.5; " \f[B]CONFIG_CGROUP_HUGETLB\f[] ) This supports limiting the use of huge pages by cgroups. .IP Further information can be found in the kernel source file @@ -385,7 +385,7 @@ Further information can be found in the kernel source file .I Documentation/cgroup\-v1/hugetlb.txt in Linux 5.2 and earlier). .TP -.IR pids " (since Linux 4.3; " \fBCONFIG_CGROUP_PIDS\fP ) +.IR pids " (since Linux 4.3; " \f[B]CONFIG_CGROUP_PIDS\f[] ) This controller permits limiting the number of process that may be created in a cgroup (and its descendants). .IP @@ -395,7 +395,7 @@ Further information can be found in the kernel source file .I Documentation/cgroup\-v1/pids.txt in Linux 5.2 and earlier). .TP -.IR rdma " (since Linux 4.11; " \fBCONFIG_CGROUP_RDMA\fP ) +.IR rdma " (since Linux 4.11; " \f[B]CONFIG_CGROUP_RDMA\f[] ) The RDMA controller permits limiting the use of RDMA/IB-specific resources per cgroup. .IP @@ -862,7 +862,7 @@ providing state information about the cgroup: .P .in +4n .EX -$ \fBcat mygrp/cgroup.events\fP +.RB $ " cat mygrp/cgroup.events" populated 1 frozen 0 .EE @@ -1852,7 +1852,7 @@ As at Linux 4.15, one sees the following when inspecting this file: .IP .in +4n .EX -$ \fBcat /sys/kernel/cgroup/delegate\fP +.RB $ " cat /sys/kernel/cgroup/delegate" cgroup.procs cgroup.subtree_control cgroup.threads @@ -1870,7 +1870,7 @@ Features are listed one per line: .IP .in +4n .EX -$ \fBcat /sys/kernel/cgroup/features\fP +.RB $ " cat /sys/kernel/cgroup/features" nsdelegate memory_localevents .EE diff --git a/man/man7/charsets.7 b/man/man7/charsets.7 index 603d3ac7b0..ec954100af 100644 --- a/man/man7/charsets.7 +++ b/man/man7/charsets.7 @@ -214,17 +214,35 @@ It uses codes either G0 always has size 94 and uses codes 041\[en]0176. .P Switching between character sets is done using the shift functions -\fB\[ha]N\fP (SO or LS1), \fB\[ha]O\fP (SI or LS0), ESC n (LS2), ESC o (LS3), +.B \[ha]N +(SO or LS1), +.B \[ha]O +(SI or LS0), ESC n (LS2), ESC o (LS3), ESC N (SS2), ESC O (SS3), ESC \[ti] (LS1R), ESC } (LS2R), ESC | (LS3R). -The function LS\fIn\fP makes character set G\fIn\fP the current one +The function +.RI LS n +makes character set +.RI G n +the current one for codes with high bit zero. -The function LS\fIn\fPR makes character set G\fIn\fP the current one +The function +.RI LS n R +makes character set +.RI G n +the current one for codes with high bit one. -The function SS\fIn\fP makes character set G\fIn\fP (\fIn\fP=2 or 3) +The function +.RI SS n +makes character set +.RI G n +.RI ( n =2 +or 3) the current one for the next character only (regardless of the value of its high order bit). .P -A 94-character set is designated as G\fIn\fP character set +A 94-character set is designated as +.RI G n +character set by an escape sequence ESC ( xx (for G0), ESC ) xx (for G1), ESC * xx (for G2), ESC + xx (for G3), where xx is a symbol or a pair of symbols found in the ISO/IEC\~2375 International @@ -236,12 +254,16 @@ instead of currency sign), ESC ( M selects a character set for African languages, ESC ( ! A selects the Cuban character set, and so on. .P -A 96-character set is designated as G\fIn\fP character set +A 96-character set is designated as +.RI G n +character set by an escape sequence ESC \- xx (for G1), ESC . xx (for G2) or ESC / xx (for G3). For example, ESC \- G selects the Hebrew alphabet as G1. .P -A multibyte character set is designated as G\fIn\fP character set +A multibyte character set is designated as +.RI G n +character set by an escape sequence ESC $ xx or ESC $ ( xx (for G0), ESC $ ) xx (for G1), ESC $ * xx (for G2), ESC $ + xx (for G3). For example, ESC $ ( C selects the Korean character set for G0. @@ -251,7 +273,11 @@ recent version selected by ESC & @ ESC $ B. ISO/IEC\~4873 stipulates a narrower use of character sets, where G0 is fixed (always ASCII), so that G1, G2, and G3 can be invoked only for codes with the high order bit set. -In particular, \fB\[ha]N\fP and \fB\[ha]O\fP are not used anymore, ESC ( xx +In particular, +.B \[ha]N +and +.B \[ha]O +are not used anymore, ESC ( xx can be used only with xx=B, and ESC ) xx, ESC * xx, ESC + xx are equivalent to ESC \- xx, ESC . xx, ESC / xx, respectively. .SS TIS-620 diff --git a/man/man7/cpuset.7 b/man/man7/cpuset.7 index 8437386e99..28e3daa3da 100644 --- a/man/man7/cpuset.7 +++ b/man/man7/cpuset.7 @@ -172,14 +172,17 @@ If set (1), that cpuset will receive special handling after it is released, that is, after all processes cease using it (i.e., terminate or are moved to a different cpuset) and all child cpuset directories have been removed. -See the \fBNotify On Release\fR section, below. +See the +.B Notify On Release \" Sx +section, below. .\" ====================== cpus ====================== .TP .I cpuset.cpus List of the physical numbers of the CPUs on which processes in that cpuset are allowed to execute. -See \fBList Format\fR below for a description of the -format of +See +.B List Format \" Sx +below for a description of the format of .IR cpus . .IP The CPUs allowed to a cpuset may be changed by @@ -220,8 +223,9 @@ of its parent cpuset. .I cpuset.mems List of memory nodes on which processes in this cpuset are allowed to allocate memory. -See \fBList Format\fR below for a description of the -format of +See +.B List Format \" Sx +below for a description of the format of .IR mems . .\" ==================== mem_exclusive ==================== .TP @@ -229,7 +233,9 @@ format of Flag (0 or 1). If set (1), the cpuset has exclusive use of its memory nodes (no sibling or cousin may overlap). -Also if set (1), the cpuset is a \fBHardwall\fR cpuset (see below). +Also if set (1), the cpuset is a +.B Hardwall \" Sx +cpuset (see below). By default, this is off (0). Newly created cpusets also initially default this to off (0). .IP @@ -243,11 +249,14 @@ of that cpuset's parent cpuset. .TP .IR cpuset.mem_hardwall " (since Linux 2.6.26)" Flag (0 or 1). -If set (1), the cpuset is a \fBHardwall\fR cpuset (see below). -Unlike \fBmem_exclusive\fR, -there is no constraint on whether cpusets -marked \fBmem_hardwall\fR may have overlapping -memory nodes with sibling or cousin cpusets. +If set (1), the cpuset is a +.B Hardwall +cpuset (see below). +Unlike +.BR mem_exclusive , +there is no constraint on whether cpusets marked +.B mem_hardwall +may have overlapping memory nodes with sibling or cousin cpusets. By default, this is off (0). Newly created cpusets also initially default this to off (0). .\" ==================== memory_migrate ==================== @@ -256,13 +265,17 @@ Newly created cpusets also initially default this to off (0). Flag (0 or 1). If set (1), then memory migration is enabled. By default, this is off (0). -See the \fBMemory Migration\fR section, below. +See the +.B Memory Migration \" Sx +section, below. .\" ==================== memory_pressure ==================== .TP .IR cpuset.memory_pressure " (since Linux 2.6.16)" A measure of how much memory pressure the processes in this cpuset are causing. -See the \fBMemory Pressure\fR section, below. +See the +.B Memory Pressure \" Sx +section, below. Unless .I memory_pressure_enabled is enabled, always has value zero (0). @@ -281,7 +294,8 @@ If set (1), the calculations are enabled for all cpusets in the system. By default, this is off (0). See the -\fBMemory Pressure\fR section, below. +.B Memory Pressure \" Sx +section, below. .\" ================== memory_spread_page ================== .TP .IR cpuset.memory_spread_page " (since Linux 2.6.17)" @@ -291,7 +305,9 @@ If set (1), pages in the kernel page cache By default, this is off (0) in the top cpuset, and inherited from the parent cpuset in newly created cpusets. -See the \fBMemory Spread\fR section, below. +See the +.B Memory Spread \" Sx +section, below. .\" ================== memory_spread_slab ================== .TP .IR cpuset.memory_spread_slab " (since Linux 2.6.17)" @@ -302,7 +318,9 @@ uniformly spread across the cpuset. By default, is off (0) in the top cpuset, and inherited from the parent cpuset in newly created cpusets. -See the \fBMemory Spread\fR section, below. +See the +.B Memory Spread \" Sx +section, below. .\" ================== sched_load_balance ================== .TP .IR cpuset.sched_load_balance " (since Linux 2.6.24)" @@ -316,7 +334,9 @@ kernel will avoid load balancing processes in this cpuset, some other cpuset with overlapping CPUs has its .I sched_load_balance flag set. -See \fBScheduler Load Balancing\fR, below, for further details. +See +.BR "Scheduler Load Balancing" , \" Sx +below, for further details. .\" ================== sched_relax_domain_level ================== .TP .IR cpuset.sched_relax_domain_level " (since Linux 2.6.26)" @@ -336,7 +356,9 @@ is enabled, then the higher the value of the .IR sched_relax_domain_level , the wider the range of CPUs over which immediate load balancing is attempted. -See \fBScheduler Relax Domain Level\fR, below, for further details. +See +.BR "Scheduler Relax Domain Level" , \" Sx +below, for further details. .\" ================== proc cpuset ================== .P In addition to the above pseudo-files in each directory below @@ -355,7 +377,11 @@ displaying the process's (on which CPUs it may be scheduled) and .I Mems_allowed (on which memory nodes it may obtain memory), -in the two formats \fBMask Format\fR and \fBList Format\fR (see below) +in the two formats +.B Mask Format \" Sx +and +.B List Format \" Sx +(see below) as shown in the following example: .P .in +4n @@ -516,7 +542,9 @@ Unless memory pressure calculation is enabled by setting the pseudo-file it is not computed for any cpuset, and reads from any .I memory_pressure always return zero, as represented by the ASCII string "0\[rs]n". -See the \fBWARNINGS\fR section, below. +See the +.B WARNINGS \" Sx +section, below. .P A per-cpuset, running average is employed for the following reasons: .IP \[bu] 3 @@ -701,7 +729,9 @@ worthwhile performance benefits. .P By default, load balancing is done across all CPUs, except those marked isolated using the kernel boot time "isolcpus=" argument. -(See \fBScheduler Relax Domain Level\fR, below, to change this default.) +(See +.BR "Scheduler Relax Domain Level" , \" Sx +below, to change this default.) .P This default load balancing across all CPUs is not well suited to the following two situations: @@ -728,7 +758,8 @@ When the per-cpuset flag .I sched_load_balance is disabled, then the scheduler will avoid load balancing across the CPUs in that cpuset, -\fIexcept\fR in so far as is necessary because some overlapping cpuset +.I except +in so far as is necessary because some overlapping cpuset has .I sched_load_balance enabled. @@ -856,8 +887,8 @@ The following formats are used to represent sets of CPUs and memory nodes. .\" ================== Mask Format ================== .SS Mask format -The \fBMask Format\fR is used to represent CPU and memory-node bit masks -in the +The Mask Format is used to +represent CPU and memory-node bit masks in the .IR /proc/ pid /status file. .P @@ -872,7 +903,8 @@ The hex digits within a word are also in big-endian order. The number of 32-bit words displayed is the minimum number needed to display all bits of the bit mask, based on the size of the bit mask. .P -Examples of the \fBMask Format\fR: +Examples of the +.BR Mask\~Format : .P .in +4n .EX @@ -897,14 +929,15 @@ second for bit 32, the third for bit 16, the fourth for bit 8, the fifth for bit 4, and the "7" is for bits 2, 1, and 0. .\" ================== List Format ================== .SS List format -The \fBList Format\fR for +The List Format for .I cpus and .I mems is a comma-separated list of CPU or memory-node numbers and ranges of numbers, in ASCII decimal. .P -Examples of the \fBList Format\fR: +Examples of the +.BR List\~Format : .P .in +4n .EX diff --git a/man/man7/credentials.7 b/man/man7/credentials.7 index 02427a9e56..ad7c275ca3 100644 --- a/man/man7/credentials.7 +++ b/man/man7/credentials.7 @@ -79,7 +79,8 @@ same process group). A process's group membership can be set using .BR setpgid (2). The process whose process ID is the same as its process group ID is the -\fIprocess group leader\fP for that group. +.I process group leader +for that group. .P A session is a collection of processes that share the same session ID. All of the members of a process group also have the same session ID @@ -91,7 +92,8 @@ A new session is created when a process calls which creates a new session whose session ID is the same as the PID of the process that called .BR setsid (2). -The creator of the session is called the \fIsession leader\fP. +The creator of the session is called the +.IR session\~leader . .P All of the processes in a session share a .IR "controlling terminal" . diff --git a/man/man7/environ.7 b/man/man7/environ.7 index 6b4a8bb60f..e39f0c56c5 100644 --- a/man/man7/environ.7 +++ b/man/man7/environ.7 @@ -35,9 +35,11 @@ of its parent's environment. .P By convention, the strings in .I environ -have the form "\fIname\fP\fB=\fP\fIvalue\fP". +have the form +. RI \[dq] name\f[B]=\f[]value \[dq]. The name is case-sensitive and may not contain -the character "\fB=\fP". +the character +.RB \[dq] = \[dq]. The value can be anything that can be represented as a string. The name and the value may not contain an embedded null byte (\[aq]\[rs]0\[aq]), since this is assumed to terminate the string. @@ -131,7 +133,8 @@ The sequence of directory prefixes that and many other programs employ when searching for an executable file that is specified as a simple filename (i.a., a pathname that contains no slashes). -The prefixes are separated by colons (\fB:\fP). +The prefixes are separated by colons +.RB ( : ). The list of prefixes is searched from beginning to end, by checking the pathname formed by concatenating a prefix, a slash, and the filename, diff --git a/man/man7/fanotify.7 b/man/man7/fanotify.7 index 676d8194da..a5ddf1df01 100644 --- a/man/man7/fanotify.7 +++ b/man/man7/fanotify.7 @@ -1037,7 +1037,7 @@ Execution of the program ends when the user presses the ENTER key. .P .in +4n .EX -# \fB./fanotify_example /home\fP +.RB # " ./fanotify_example /home" ; Press enter key to terminate. Listening for events. FAN_OPEN_PERM: File /home/user/temp/notes @@ -1269,14 +1269,14 @@ been processed. .P .in +4n .EX -# \fB./fanotify_fid /home/user\fP +.RB # " ./fanotify_fid /home/user" ; Listening for events. FAN_CREATE (file created): Directory /home/user has been modified. Entry \[aq]testfile.txt\[aq] is not a subdirectory. All events processed successfully. Program exiting. \& -$ \fBtouch /home/user/testfile.txt\fP # In another terminal +.RB $ " touch /home/user/testfile.txt" "; # In another terminal" .EE .in .P @@ -1292,14 +1292,14 @@ flag set and with the created directory name. .P .in +4n .EX -# \fB./fanotify_fid /home/user\fP +.RB # " ./fanotify_fid /home/user" ; Listening for events. FAN_CREATE | FAN_ONDIR (subdirectory created): Directory /home/user has been modified. Entry \[aq]testdir\[aq] is a subdirectory. All events processed successfully. Program exiting. \& -$ \fBmkdir \-p /home/user/testdir\fP # In another terminal +.RB $ " mkdir \-p /home/user/testdir" "; # In another terminal" .EE .in .SS Program source: fanotify_fid.c diff --git a/man/man7/feature_test_macros.7 b/man/man7/feature_test_macros.7 index 5dbc3c2fc0..d56ca4ad00 100644 --- a/man/man7/feature_test_macros.7 +++ b/man/man7/feature_test_macros.7 @@ -125,7 +125,8 @@ that the proper function declarations are visible, and the macros are not defined by default. .SS Feature test macros understood by glibc The paragraphs below explain how feature test macros are handled -in glibc 2.\fIx\fP, +in glibc +.RI 2. x , .I x > 0. .P @@ -814,20 +815,20 @@ shows some examples of what we would see: .P .in +4n .EX -$ \fBcc ftm.c\fP -$ \fB./a.out\fP +.RB $ " cc ftm.c" +.RB $ " ./a.out" _POSIX_SOURCE defined _POSIX_C_SOURCE defined: 200809L _BSD_SOURCE defined _SVID_SOURCE defined _ATFILE_SOURCE defined -$ \fBcc \-D_XOPEN_SOURCE=500 ftm.c\fP -$ \fB./a.out\fP +.RB $ " cc \-D_XOPEN_SOURCE=500 ftm.c" +.RB $ " ./a.out" _POSIX_SOURCE defined _POSIX_C_SOURCE defined: 199506L _XOPEN_SOURCE defined: 500 -$ \fBcc \-D_GNU_SOURCE ftm.c\fP -$ \fB./a.out\fP +.RB $ " cc \-D_GNU_SOURCE ftm.c" +.RB $ " ./a.out" _POSIX_SOURCE defined _POSIX_C_SOURCE defined: 200809L _ISOC99_SOURCE defined diff --git a/man/man7/glob.7 b/man/man7/glob.7 index 82766f69d1..0a16cb1c1a 100644 --- a/man/man7/glob.7 +++ b/man/man7/glob.7 @@ -33,13 +33,17 @@ including the empty string. .P .B "Character classes" .P -An expression "\fI[...]\fP" where the first character after the +An expression +.RI \[dq] [...] \[dq] +where the first character after the leading \[aq][\[aq] is not an \[aq]!\[aq] matches a single character, namely any of the characters enclosed by the brackets. The string enclosed by the brackets cannot be empty; therefore \[aq]]\[aq] can be allowed between the brackets, provided that it is the first character. -(Thus, "\fI[][!]\fP" matches the +(Thus, +.RI \[dq] [][!] \[dq] +matches the three characters \[aq][\[aq], \[aq]]\[aq], and \[aq]!\[aq].) .P .B Ranges @@ -47,21 +51,30 @@ three characters \[aq][\[aq], \[aq]]\[aq], and \[aq]!\[aq].) There is one special convention: two characters separated by \[aq]\-\[aq] denote a range. (Thus, -"\fI[A\-Fa\-f0\-9]\fP" is equivalent to "\fI[ABCDEFabcdef0123456789]\fP".) +.RI \[dq] [A\-Fa\-f0\-9] \[dq] +is equivalent to +.RI \[dq] [ABCDEFabcdef0123456789] \[dq].) One may include \[aq]\-\[aq] in its literal meaning by making it the first or last character between the brackets. (Thus, -"\fI[]\-]\fP" matches just the two characters \[aq]]\[aq] and \[aq]\-\[aq], -and "\fI[\-\-0]\fP" matches the +.RI \[dq] []\-] \[dq] +matches just the two characters \[aq]]\[aq] and \[aq]\-\[aq], +and +.RI \[dq] [\-\-0] \[dq] +matches the three characters \[aq]\-\[aq], \[aq].\[aq], and \[aq]0\[aq], since \[aq]/\[aq] cannot be matched.) .P .B Complementation .P -An expression "\fI[!...]\fP" matches a single character, namely +An expression +.RI \[dq] [!...] \[dq] +matches a single character, namely any character that is not matched by the expression obtained by removing the first \[aq]!\[aq] from it. -(Thus, "\fI[!]a\-]\fP" matches any +(Thus, +.RI \[dq] [!]a\-] \[dq] +matches any single character except \[aq]]\[aq], \[aq]a\[aq], and \[aq]\-\[aq].) .P One can remove the special meaning of \[aq]?\[aq], \[aq]*\[aq], and \[aq][\[aq] @@ -70,20 +83,30 @@ or, in case this is part of a shell command line, enclosing them in quotes. Between brackets these characters stand for themselves. -Thus, "\fI[[?*\[rs]]\fP" matches the +Thus, +.RI \[dq] [[?*\[rs]] \[dq] +matches the four characters \[aq][\[aq], \[aq]?\[aq], \[aq]*\[aq], and \[aq]\[rs]\[aq]. .SS Pathnames Globbing is applied on each of the components of a pathname separately. A \[aq]/\[aq] in a pathname cannot be matched by a \[aq]?\[aq] or \[aq]*\[aq] -wildcard, or by a range like "\fI[.\-0]\fP". +wildcard, or by a range like +.RI \[dq] [.\-0] \[dq]. A range containing an explicit \[aq]/\[aq] character is syntactically incorrect. (POSIX requires that syntactically incorrect patterns are left unchanged.) .P If a filename starts with a \[aq].\[aq], this character must be matched explicitly. -(Thus, \fIrm\ *\fP will not remove .profile, and \fItar\ c\ *\fP will not -archive all your files; \fItar\ c\ .\fP is better.) +(Thus, +.I rm\ * +will not remove +.IR .profile , +and +.I tar\ c\ * +will not archive all your files; +.I tar\ c\ . +is better.) .SS Empty lists The nice and simple rule given above: "expand a wildcard pattern into the list of matching pathnames" was the original UNIX @@ -142,10 +165,18 @@ more copies of the preceding thing. .P Now that regular expressions have bracket expressions where the negation is indicated by a \[aq]\[ha]\[aq], POSIX has declared the -effect of a wildcard pattern "\fI[\[ha]...]\fP" to be undefined. +effect of a wildcard pattern +.RI \[dq] [\[ha]...] \[dq] +to be undefined. .SS Character classes and internationalization Of course ranges were originally meant to be ASCII ranges, -so that "\fI[\ \-%]\fP" stands for "\fI[\ !"#$%]\fP" and "\fI[a\-z]\fP" stands +so that +.RI \[dq] "[\ \-%]" \[dq] +stands for +.RI \[dq] "[\ !\[dq]#$%]" \[dq] +and +.RI \[dq] [a\-z] \[dq] +stands for "any lowercase letter". Some UNIX implementations generalized this so that a range X\-Y stands for the set of characters with code between the codes for @@ -176,27 +207,44 @@ category in the current locale. [:punct:] [:space:] [:upper:] [:xdigit:] .fi .P -so that one can say "\fI[[:lower:]]\fP" instead of "\fI[a\-z]\fP", and have -things work in Denmark, too, where there are three letters past \[aq]z\[aq] +so that one can say +.RI \[dq] [[:lower:]] \[dq] +instead of +.RI \[dq] [a\-z] \[dq], +and have things work in Denmark, too, +where there are three letters past \[aq]z\[aq] in the alphabet. These character classes are defined by the .B LC_CTYPE category in the current locale. .P -(v) Collating symbols, like "\fI[.ch.]\fP" or "\fI[.a-acute.]\fP", -where the string between "\fI[.\fP" and "\fI.]\fP" is a collating -element defined for the current locale. +(v) Collating symbols, like +.RI \[dq] [.ch.] \[dq] +or +.RI \[dq] [.a-acute.] \[dq], +where the string between +.RI \[dq] [. \[dq] +and +.RI \[dq] .] \[dq] +is a collating element defined for the current locale. Note that this may be a multicharacter element. .P -(vi) Equivalence class expressions, like "\fI[=a=]\fP", -where the string between "\fI[=\fP" and "\fI=]\fP" is any collating -element from its equivalence class, as defined for the -current locale. -For example, "\fI[[=a=]]\fP" might be equivalent -to "\fI[a\('a\(`a\(:a\(^a]\fP", that is, -to "\fI[a[.a-acute.][.a-grave.][.a-umlaut.][.a-circumflex.]]\fP". +(vi) Equivalence class expressions, like +.RI \[dq] [=a=] \[dq], +where the string between +.RI \[dq] [= \[dq] +and +.RI \[dq] =] \[dq] +is any collating element from its equivalence class, +as defined for the current locale. +For example, +.RI \[dq] [[=a=]] \[dq] +might be equivalent to +.RI \[dq] [a\('a\(`a\(:a\(^a] \[dq], +that is, to +.RI \[dq] [a[.a-acute.][.a-grave.][.a-umlaut.][.a-circumflex.]] \[dq]. .SH SEE ALSO .BR sh (1), .BR fnmatch (3), diff --git a/man/man7/inode.7 b/man/man7/inode.7 index 1fd3de85d5..4803fdc9b8 100644 --- a/man/man7/inode.7 +++ b/man/man7/inode.7 @@ -26,7 +26,10 @@ and .BR statx (2): .TP Device where inode resides -\fIstat.st_dev\fP; \fIstatx.stx_dev_minor\fP and \fIstatx.stx_dev_major\fP +.IR stat.st_dev ; +.I statx.stx_dev_minor +and +.I statx.stx_dev_major .IP Each inode (as well as the associated file) resides in a filesystem that is hosted on a device. @@ -35,7 +38,8 @@ That device is identified by the combination of its major ID and minor ID (which identifies a specific instance in the general class). .TP Inode number -\fIstat.st_ino\fP; \fIstatx.stx_ino\fP +.IR stat.st_ino ; +.I statx.stx_ino .IP Each file in a filesystem has a unique inode number. Inode numbers are guaranteed to be unique only within a filesystem @@ -44,19 +48,22 @@ which is the reason that hard links may not cross filesystem boundaries). This field contains the file's inode number. .TP File type and mode -\fIstat.st_mode\fP; \fIstatx.stx_mode\fP +.IR stat.st_mode ; +.I statx.stx_mode .IP See the discussion of file type and mode, below. .TP Link count -\fIstat.st_nlink\fP; \fIstatx.stx_nlink\fP +.IR stat.st_nlink ; +.I statx.stx_nlink .IP This field contains the number of hard links to the file. Additional links to an existing file are created using .BR link (2). .TP User ID -\fIstat.st_uid\fP; \fIstatx.stx_uid\fP +.IR stat.st_uid ; +.I statx.stx_uid .IP This field records the user ID of the owner of the file. For newly created files, @@ -65,7 +72,8 @@ The user ID of a file can be changed using .BR chown (2). .TP Group ID -\fIstat.st_gid\fP; \fIstatx.stx_gid\fP +.IR stat.st_gid ; +.I statx.stx_gid .IP The inode records the ID of the group owner of the file. For newly created files, @@ -77,13 +85,17 @@ The group ID of a file can be changed using .BR chown (2). .TP Device represented by this inode -\fIstat.st_rdev\fP; \fIstatx.stx_rdev_minor\fP and \fIstatx.stx_rdev_major\fP +.IR stat.st_rdev ; +.I statx.stx_rdev_minor +and +.I statx.stx_rdev_major .IP If this file (inode) represents a device, then the inode records the major and minor ID of that device. .TP File size -\fIstat.st_size\fP; \fIstatx.stx_size\fP +.IR stat.st_size ; +.I statx.stx_size .IP This field gives the size of the file (if it is a regular file or a symbolic link) in bytes. @@ -91,14 +103,16 @@ The size of a symbolic link is the length of the pathname it contains, without a terminating null byte. .TP Preferred block size for I/O -\fIstat.st_blksize\fP; \fIstatx.stx_blksize\fP +.IR stat.st_blksize ; +.I statx.stx_blksize .IP This field gives the "preferred" blocksize for efficient filesystem I/O. (Writing to a file in smaller chunks may cause an inefficient read-modify-rewrite.) .TP Number of blocks allocated to the file -\fIstat.st_blocks\fP; \fIstatx.stx_blocks\fP +.IR stat.st_blocks ; +.I statx.stx_blocks .IP This field indicates the number of blocks allocated to the file, 512-byte units, @@ -118,7 +132,8 @@ on a few systems, a different unit is used, such as 1024. Furthermore, the unit may differ on a per-filesystem basis. .TP Last access timestamp (atime) -\fIstat.st_atime\fP; \fIstatx.stx_atime\fP +.IR stat.st_atime ; +.I statx.stx_atime .IP This is the file's last access timestamp. It is changed by file accesses, for example, by @@ -151,7 +166,10 @@ flag; see .BR open (2). .TP File creation (birth) timestamp (btime) -(not returned in the \fIstat\fP structure); \fIstatx.stx_btime\fP +(not returned in the +.I stat +structure); +.I statx.stx_btime .IP The file's creation timestamp. This is set on file creation and not changed subsequently. @@ -161,7 +179,8 @@ and is not currently supported by most Linux filesystems. .\" FIXME Is it supported on ext4 and XFS? .TP Last modification timestamp (mtime) -\fIstat.st_mtime\fP; \fIstatx.stx_mtime\fP +.IR stat.st_mtime ; +.I statx.stx_mtime .IP This is the file's last modification timestamp. It is changed by file modifications, for example, by @@ -179,7 +198,8 @@ The mtime timestamp is changed for changes in owner, group, hard link count, or mode. .TP Last status change timestamp (ctime) -\fIstat.st_ctime\fP; \fIstatx.stx_ctime\fP +.IR stat.st_ctime ; +.I statx.stx_ctime .IP This is the file's last status change timestamp. It is changed by writing or by setting inode information @@ -463,7 +483,8 @@ and .BR S_IXUSR . .SH NOTES For pseudofiles that are autogenerated by the kernel, the file size -(\fIstat.st_size\fP; \fIstatx.stx_size\fP) +.RI ( stat.st_size ; +.IR statx.stx_size ) reported by the kernel is not accurate. For example, the value 0 is returned for many files under the .I /proc diff --git a/man/man7/inotify.7 b/man/man7/inotify.7 index 05dbae20b0..141423880c 100644 --- a/man/man7/inotify.7 +++ b/man/man7/inotify.7 @@ -94,7 +94,7 @@ struct inotify_event { uint32_t mask; /* Mask describing event */ uint32_t cookie; /* Unique cookie associating related events (for rename(2)) */ - uint32_t len; /* Size of \fIname\fP field */ + uint32_t len; /* Size of \f[I]name\f[] field */ char name[]; /* Optional null\-terminated name */ }; .EE @@ -886,7 +886,7 @@ Execution of the program ended when the user pressed the ENTER key. .SS Example output .in +4n .EX -$ \fB./a.out /tmp /home/user/temp\fP +.RB $ " ./a.out /tmp /home/user/temp" ; Press enter key to terminate. Listening for events. IN_OPEN: /home/user/temp/foo [file] diff --git a/man/man7/ip.7 b/man/man7/ip.7 index 00e5274c55..138d3bb41b 100644 --- a/man/man7/ip.7 +++ b/man/man7/ip.7 @@ -44,7 +44,7 @@ ip \- Linux IPv4 protocol implementation .\" .B #include <net/netinet.h> -- does not exist anymore .\" .B #include <linux/errqueue.h> -- never include <linux/foo.h> .B #include <netinet/in.h> -.B #include <netinet/ip.h> \fR/* superset of previous */ +.BR "#include <netinet/ip.h>" " /* superset of previous */" .P .IB tcp_socket " = socket(AF_INET, SOCK_STREAM, 0);" .IB udp_socket " = socket(AF_INET, SOCK_DGRAM, 0);" diff --git a/man/man7/keyrings.7 b/man/man7/keyrings.7 index 588ffcfa56..2e644850cd 100644 --- a/man/man7/keyrings.7 +++ b/man/man7/keyrings.7 @@ -297,7 +297,9 @@ is reset every time the persistent key is requested. Special keyrings There are special keyrings owned by the kernel that can anchor keys for special purposes. -An example of this is the \fIsystem keyring\fR used for holding +An example of this is the +.I system\~keyring +used for holding encryption keys for module signature verification. .IP These special keyrings are usually closed to direct alteration diff --git a/man/man7/locale.7 b/man/man7/locale.7 index 8bee8ca3c1..f61f4b5228 100644 --- a/man/man7/locale.7 +++ b/man/man7/locale.7 @@ -266,8 +266,8 @@ struct lconv { is \[aq]\[rs]0\[aq]. */ char *currency_symbol; /* Local currency symbol */ char *mon_decimal_point; /* Radix character */ - char *mon_thousands_sep; /* Like \fIthousands_sep\fP above */ - char *mon_grouping; /* Like \fIgrouping\fP above */ + char *mon_thousands_sep; /* Like \f[I]thousands_sep\f[] above */ + char *mon_grouping; /* Like \f[I]grouping\f[] above */ char *positive_sign; /* Sign for positive values */ char *negative_sign; /* Sign for negative values */ char int_frac_digits; /* International fractional digits */ diff --git a/man/man7/man-pages.7 b/man/man7/man-pages.7 index 0ba3991e81..8ea38311b1 100644 --- a/man/man7/man-pages.7 +++ b/man/man7/man-pages.7 @@ -17,7 +17,8 @@ man-pages \- conventions for writing Linux man pages .I title .SH DESCRIPTION This page describes the conventions that should be employed -when writing man pages for the Linux \fIman-pages\fP project, +when writing man pages for the +.IR "Linux man-pages project" , which documents the user-space API provided by the Linux kernel and the GNU C library. The project thus provides most of the pages in Section 2, @@ -129,11 +130,11 @@ are placed in the order shown in the list. .RS .TS l l. -\fBNAME\fP +\f[B]NAME\f[] LIBRARY [Normally only in Sections 2, 3] -\fBSYNOPSIS\fP +\f[B]SYNOPSIS\f[] CONFIGURATION [Normally only in Section 4] -\fBDESCRIPTION\fP +\f[B]DESCRIPTION\f[] OPTIONS [Normally only in Sections 1, 8] EXIT STATUS [Normally only in Sections 1, 8] RETURN VALUE [Normally only in Sections 2, 3] @@ -159,7 +160,7 @@ EXAMPLES AUTHORS [Discouraged] REPORTING BUGS [Not used in man-pages] COPYRIGHT [Not used in man-pages] -\fBSEE ALSO\fP +\f[B]SEE ALSO\f[] .TE .RE .P @@ -169,8 +170,9 @@ If you must, you can create your own headings if they make things easier to understand (this can be especially useful for pages in Sections 4 and 5). However, before doing this, consider whether you could use the -traditional headings, with some subsections (\fI.SS\fP) within -those sections. +traditional headings, with some subsections +.RI ( .SS ) +within those sections. .P The following list elaborates on the contents of each of the above sections. @@ -181,7 +183,8 @@ The name of this manual page. See .BR man (7) for important details of the line(s) that should follow the -\fB.SH NAME\fP command. +.B .SH\~NAME +command. All words in this line (including the word immediately following the "\[rs]\-") should be in lowercase, except where English or technical terminological convention @@ -395,7 +398,12 @@ SUS, SUSv2, and XPG, or the SVr4 and 4.xBSD implementation standards. Miscellaneous notes. .IP For Section 2 and 3 man pages you may find it useful to include -subsections (\fBSS\fP) named \fILinux Notes\fP and \fIglibc Notes\fP. +subsections +.RB ( SS ) +named +.I Linux\~Notes +and +.IR glibc\~Notes . .IP In Section 2, use the heading .I "C library/kernel differences" @@ -416,12 +424,14 @@ One or more examples demonstrating how this function, file, or command is used. .IP For details on writing example programs, -see \fIExample programs\fP below. +see +.I Example\~programs +below. .TP .B AUTHORS A list of authors of the documentation or program. .IP -\fBUse of an AUTHORS section is strongly discouraged\fP. +.B "Use of an AUTHORS section is strongly discouraged" . Generally, it is better not to clutter every page with a list of (over time potentially numerous) authors; if you write or significantly amend a page, @@ -740,7 +750,7 @@ for example .P .in +4n .EX -$ \fBdate\fP +.RB $ " date" ; Thu Jul 7 13:01:27 CEST 2016 .EE .in @@ -1144,7 +1154,8 @@ Example programs should do error checking after system calls and library function calls. .IP \[bu] Example programs should be complete, and compile without -warnings when compiled with \fIcc\ \-Wall\fP. +warnings when compiled with +.IR "cc\ \-Wall" . .IP \[bu] Where possible and appropriate, example programs should allow experimentation, by varying their behavior based on inputs diff --git a/man/man7/mount_namespaces.7 b/man/man7/mount_namespaces.7 index 0e1223f99a..2ffd21b1b9 100644 --- a/man/man7/mount_namespaces.7 +++ b/man/man7/mount_namespaces.7 @@ -249,9 +249,9 @@ and then view the mounts in .P .in +4n .EX -sh1# \fBmount \-\-make\-shared /mntS\fP -sh1# \fBmount \-\-make\-private /mntP\fP -sh1# \fBcat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB sh1# " mount \-\-make\-shared /mntS" +.RB sh1# " mount \-\-make\-private /mntP" +.RB sh1# " cat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]" 77 61 8:17 / /mntS rw,relatime shared:1 83 61 8:15 / /mntP rw,relatime .EE @@ -276,7 +276,7 @@ which is mounted as private: .P .in +4n .EX -sh1# \fBcat /proc/self/mountinfo | awk \[aq]$1 == 61\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB sh1# " cat /proc/self/mountinfo | awk \[aq]$1 == 61\[aq] | sed \[aq]s/ \- .*//\[aq]" 61 0 8:2 / / rw,relatime .EE .in @@ -287,8 +287,8 @@ and inspect the mounts: .P .in +4n .EX -$ \fBPS1=\[aq]sh2# \[aq] sudo unshare \-m \-\-propagation unchanged sh\fP -sh2# \fBcat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB $ " PS1=\[aq]sh2# \[aq] sudo unshare \-m \-\-propagation unchanged sh" +.RB sh2# " cat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]" 222 145 8:17 / /mntS rw,relatime shared:1 225 145 8:15 / /mntP rw,relatime .EE @@ -314,11 +314,11 @@ and inspect the set-up: .P .in +4n .EX -sh2# \fBmkdir /mntS/a\fP -sh2# \fBmount /dev/sdb6 /mntS/a\fP -sh2# \fBmkdir /mntP/b\fP -sh2# \fBmount /dev/sdb7 /mntP/b\fP -sh2# \fBcat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB sh2# " mkdir /mntS/a" +.RB sh2# " mount /dev/sdb6 /mntS/a" +.RB sh2# " mkdir /mntP/b" +.RB sh2# " mount /dev/sdb7 /mntP/b" +.RB sh2# " cat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]" 222 145 8:17 / /mntS rw,relatime shared:1 225 145 8:15 / /mntP rw,relatime 178 222 8:22 / /mntS/a rw,relatime shared:2 @@ -342,7 +342,7 @@ did not propagate: .P .in +4n .EX -sh1# \fBcat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB sh1# " cat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]" 77 61 8:17 / /mntS rw,relatime shared:1 83 61 8:15 / /mntP rw,relatime 179 77 8:22 / /mntS/a rw,relatime shared:2 @@ -371,9 +371,9 @@ two mounts as shared in the initial mount namespace: .P .in +4n .EX -sh1# \fBmount \-\-make\-shared /mntX\fP -sh1# \fBmount \-\-make\-shared /mntY\fP -sh1# \fBcat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB sh1# " mount \-\-make\-shared /mntX" +.RB sh1# " mount \-\-make\-shared /mntY" +.RB sh1# " cat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]" 132 83 8:23 / /mntX rw,relatime shared:1 133 83 8:22 / /mntY rw,relatime shared:2 .EE @@ -384,8 +384,8 @@ we create a new mount namespace and inspect the mounts: .P .in +4n .EX -sh2# \fBunshare \-m \-\-propagation unchanged sh\fP -sh2# \fBcat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB sh2# " unshare \-m \-\-propagation unchanged sh" +.RB sh2# " cat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]" 168 167 8:23 / /mntX rw,relatime shared:1 169 167 8:22 / /mntY rw,relatime shared:2 .EE @@ -395,8 +395,8 @@ In the new mount namespace, we then mark one of the mounts as a slave: .P .in +4n .EX -sh2# \fBmount \-\-make\-slave /mntY\fP -sh2# \fBcat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB sh2# " mount \-\-make\-slave /mntY" +.RB sh2# " cat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]" 168 167 8:23 / /mntX rw,relatime shared:1 169 167 8:22 / /mntY rw,relatime master:2 .EE @@ -414,10 +414,10 @@ and .P .in +4n .EX -sh2# \fBmkdir /mntX/a\fP -sh2# \fBmount /dev/sda3 /mntX/a\fP -sh2# \fBmkdir /mntY/b\fP -sh2# \fBmount /dev/sda5 /mntY/b\fP +.RB sh2# " mkdir /mntX/a" +.RB sh2# " mount /dev/sda3 /mntX/a" +.RB sh2# " mkdir /mntY/b" +.RB sh2# " mount /dev/sda5 /mntY/b" .EE .in .P @@ -431,7 +431,7 @@ was created as a private mount: .P .in +4n .EX -sh2# \fBcat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB sh2# " cat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]" 168 167 8:23 / /mntX rw,relatime shared:1 169 167 8:22 / /mntY rw,relatime master:2 173 168 8:3 / /mntX/a rw,relatime shared:3 @@ -450,7 +450,7 @@ was not propagated: .P .in +4n .EX -sh1# \fBcat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB sh1# " cat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]" 132 83 8:23 / /mntX rw,relatime shared:1 133 83 8:22 / /mntY rw,relatime shared:2 174 132 8:3 / /mntX/a rw,relatime shared:3 @@ -463,9 +463,9 @@ in the first shell: .P .in +4n .EX -sh1# \fBmkdir /mntY/c\fP -sh1# \fBmount /dev/sda1 /mntY/c\fP -sh1# \fBcat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB sh1# " mkdir /mntY/c" +.RB sh1# " mount /dev/sda1 /mntY/c" +.RB sh1# " cat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]" 132 83 8:23 / /mntX rw,relatime shared:1 133 83 8:22 / /mntY rw,relatime shared:2 174 132 8:3 / /mntX/a rw,relatime shared:3 @@ -480,7 +480,7 @@ and that the new mount is itself a slave mount (to peer group 4): .P .in +4n .EX -sh2# \fBcat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB sh2# " cat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]" 168 167 8:23 / /mntX rw,relatime shared:1 169 167 8:22 / /mntY rw,relatime master:2 173 168 8:3 / /mntX/a rw,relatime shared:3 @@ -499,7 +499,7 @@ Suppose we have a system with the following mounts: .P .in +4n .EX -# \fBmount | awk \[aq]{print $1, $2, $3}\[aq]\fP +.RB # " mount | awk \[aq]{print $1, $2, $3}\[aq]" /dev/sda1 on / /dev/sdb6 on /mntX /dev/sdb7 on /mntY @@ -512,8 +512,8 @@ We do this for the first user, and inspect the mounts: .P .in +4n .EX -# \fBmount \-\-rbind / /home/cecilia/\fP -# \fBmount | awk \[aq]{print $1, $2, $3}\[aq]\fP +.RB # " mount \-\-rbind / /home/cecilia/" +.RB # " mount | awk \[aq]{print $1, $2, $3}\[aq]" /dev/sda1 on / /dev/sdb6 on /mntX /dev/sdb7 on /mntY @@ -528,8 +528,8 @@ we start to see the explosion problem: .P .in +4n .EX -# \fBmount \-\-rbind / /home/henry\fP -# \fBmount | awk \[aq]{print $1, $2, $3}\[aq]\fP +.RB # " mount \-\-rbind / /home/henry" +.RB # " mount | awk \[aq]{print $1, $2, $3}\[aq]" /dev/sda1 on / /dev/sdb6 on /mntX /dev/sdb7 on /mntY @@ -559,8 +559,8 @@ it becomes obvious that the explosion is exponential in nature: .P .in +4n .EX -# \fBmount \-\-rbind / /home/otto\fP -# \fBmount | awk \[aq]{print $1, $2, $3}\[aq]\fP +.RB # " mount \-\-rbind / /home/otto" +.RB # " mount | awk \[aq]{print $1, $2, $3}\[aq]" /dev/sda1 on / /dev/sdb6 on /mntX /dev/sdb7 on /mntY @@ -596,7 +596,7 @@ We make such a mount for the first user: .P .in +4n .EX -# \fBmount \-\-rbind \-\-make\-unbindable / /home/cecilia\fP +.RB # " mount \-\-rbind \-\-make\-unbindable / /home/cecilia" .EE .in .P @@ -604,8 +604,8 @@ Before going further, we show that unbindable mounts are indeed unbindable: .P .in +4n .EX -# \fBmkdir /mntZ\fP -# \fBmount \-\-bind /home/cecilia /mntZ\fP +.RB # " mkdir /mntZ" +.RB # " mount \-\-bind /home/cecilia /mntZ" mount: wrong fs type, bad option, bad superblock on /home/cecilia, missing codepage or helper program, or other error \& @@ -618,8 +618,8 @@ Now we create unbindable recursive bind mounts for the other two users: .P .in +4n .EX -# \fBmount \-\-rbind \-\-make\-unbindable / /home/henry\fP -# \fBmount \-\-rbind \-\-make\-unbindable / /home/otto\fP +.RB # " mount \-\-rbind \-\-make\-unbindable / /home/henry" +.RB # " mount \-\-rbind \-\-make\-unbindable / /home/otto" .EE .in .P @@ -630,7 +630,7 @@ under each user's directory: .P .in +4n .EX -# \fBmount | awk \[aq]{print $1, $2, $3}\[aq]\fP +.RB # " mount | awk \[aq]{print $1, $2, $3}\[aq]" /dev/sda1 on / /dev/sdb6 on /mntX /dev/sdb7 on /mntY @@ -853,9 +853,9 @@ in the chroot-ed environment. .P .in +4n .EX -# \fBmkdir \-p /mnt/proc\fP -# \fBmount \-\-bind / /mnt\fP -# \fBmount \-\-bind /proc /mnt/proc\fP +.RB # " mkdir \-p /mnt/proc" +.RB # " mount \-\-bind / /mnt" +.RB # " mount \-\-bind /proc /mnt/proc" .EE .in .P @@ -865,9 +865,9 @@ mount is a shared mount in a new peer group (with no peers): .P .in +4n .EX -# \fBmount \-\-make\-private /mnt\fP # Isolate from any previous peer group -# \fBmount \-\-make\-shared /mnt\fP -# \fBcat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB # " mount \-\-make\-private /mnt" " # Isolate from any previous peer group" +.RB # " mount \-\-make\-shared /mnt" +.RB # " cat /proc/self/mountinfo | grep \[aq]/mnt\[aq] | sed \[aq]s/ \- .*//\[aq]" 239 61 8:2 / /mnt ... shared:102 248 239 0:4 / /mnt/proc ... shared:5 .EE @@ -880,9 +880,9 @@ onto .P .in +4n .EX -# \fBmkdir \-p /tmp/etc\fP -# \fBmount \-\-bind /mnt/etc /tmp/etc\fP -# \fBcat /proc/self/mountinfo | egrep \[aq]/mnt|/tmp/\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB # " mkdir \-p /tmp/etc" +.RB # " mount \-\-bind /mnt/etc /tmp/etc" +.RB # " cat /proc/self/mountinfo | egrep \[aq]/mnt|/tmp/\[aq] | sed \[aq]s/ \- .*//\[aq]" 239 61 8:2 / /mnt ... shared:102 248 239 0:4 / /mnt/proc ... shared:5 267 40 8:2 /etc /tmp/etc ... shared:102 @@ -901,9 +901,9 @@ so that it can propagate events to the next slave in the chain: .P .in +4n .EX -# \fBmount \-\-make\-slave /tmp/etc\fP -# \fBmount \-\-make\-shared /tmp/etc\fP -# \fBcat /proc/self/mountinfo | egrep \[aq]/mnt|/tmp/\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB # " mount \-\-make\-slave /tmp/etc" +.RB # " mount \-\-make\-shared /tmp/etc" +.RB # " cat /proc/self/mountinfo | egrep \[aq]/mnt|/tmp/\[aq] | sed \[aq]s/ \- .*//\[aq]" 239 61 8:2 / /mnt ... shared:102 248 239 0:4 / /mnt/proc ... shared:5 267 40 8:2 /etc /tmp/etc ... shared:105 master:102 @@ -922,10 +922,10 @@ a slave of .P .in +4n .EX -# \fBmkdir \-p /mnt/tmp/etc\fP -# \fBmount \-\-bind /tmp/etc /mnt/tmp/etc\fP -# \fBmount \-\-make\-slave /mnt/tmp/etc\fP -# \fBcat /proc/self/mountinfo | egrep \[aq]/mnt|/tmp/\[aq] | sed \[aq]s/ \- .*//\[aq]\fP +.RB # " mkdir \-p /mnt/tmp/etc" +.RB # " mount \-\-bind /tmp/etc /mnt/tmp/etc" +.RB # " mount \-\-make\-slave /mnt/tmp/etc" +.RB # " cat /proc/self/mountinfo | egrep \[aq]/mnt|/tmp/\[aq] | sed \[aq]s/ \- .*//\[aq]" 239 61 8:2 / /mnt ... shared:102 248 239 0:4 / /mnt/proc ... shared:5 267 40 8:2 /etc /tmp/etc ... shared:105 master:102 @@ -949,7 +949,7 @@ from the (new) root directory: .P .in +4n .EX -# \fBchroot /mnt\fP +.RB # " chroot /mnt" .EE .in .P @@ -958,7 +958,7 @@ we see the following: .P .in +4n .EX -# \fBcat /proc/self/mountinfo | sed \[aq]s/ \- .*//\[aq]\fP +.RB # " cat /proc/self/mountinfo | sed \[aq]s/ \- .*//\[aq]" 239 61 8:2 / / ... shared:102 248 239 0:4 / /proc ... shared:5 273 239 8:2 /etc /tmp/etc ... master:105 propagate_from:102 @@ -1097,9 +1097,9 @@ Consider the following example: .IP .in +4n .EX -$ \fBsudo sh\fP -# \fBmount \-\-bind /dev/null /etc/shadow\fP -# \fBcat /etc/shadow\fP # Produces no output +.RB $ " sudo sh" +.RB # " mount \-\-bind /dev/null /etc/shadow" +.RB # " cat /etc/shadow" " # Produces no output" .EE .in .IP @@ -1126,11 +1126,11 @@ in the following step: .IP .in +4n .EX -# \fBunshare \-\-user \-\-map\-root\-user \-\-mount \[rs]\fP - \fBstrace \-o /tmp/log \[rs]\fP - \fBumount /etc/shadow\fP +.RB # " unshare \-\-user \-\-map\-root\-user \-\-mount \[rs]" +.B " strace \-o /tmp/log \[rs]" +.B " umount /etc/shadow" umount: /etc/shadow: not mounted. -# \fBgrep \[aq]\[ha]umount\[aq] /tmp/log\fP +.RB # " grep \[aq]\[ha]umount\[aq] /tmp/log" umount2("/etc/shadow", 0) = \-1 EINVAL (Invalid argument) .EE .in @@ -1152,11 +1152,11 @@ less privileged mount namespace: .IP .in +4n .EX -# \fBecho \[aq]aaaaa\[aq] > /tmp/a\fP # File to mount onto /etc/shadow -# \fBunshare \-\-user \-\-map\-root\-user \-\-mount \[rs]\fP - \fBsh \-c \[aq]mount \-\-bind /tmp/a /etc/shadow; cat /etc/shadow\[aq]\fP +.RB # " echo \[aq]aaaaa\[aq] > /tmp/a" " # File to mount onto /etc/shadow" +.RB # " unshare \-\-user \-\-map\-root\-user \-\-mount \[rs]" +.B " sh \-c \[aq]mount \-\-bind /tmp/a /etc/shadow; cat /etc/shadow\[aq]" aaaaa -# \fBumount /etc/shadow\fP +.RB # " umount /etc/shadow" .EE .in .IP @@ -1184,16 +1184,16 @@ and a small hierarchy of mounts underneath that mount. .IP .in +4n .EX -$ \fBPS1=\[aq]ns1# \[aq] sudo unshare \-\-user \-\-map\-root\-user \[rs]\fP - \fB\-\-mount \-\-propagation private bash\fP -ns1# \fBecho $$\fP # We need the PID of this shell later +.RB $ " PS1=\[aq]ns1# \[aq] sudo unshare \-\-user \-\-map\-root\-user \[rs]" +.B " \-\-mount \-\-propagation private bash" +.RB ns1# " echo $$" " # We need the PID of this shell later" 778501 -ns1# \fBmount \-\-make\-shared \-\-bind /mnt /mnt\fP -ns1# \fBmkdir /mnt/x\fP -ns1# \fBmount \-\-make\-private \-t tmpfs none /mnt/x\fP -ns1# \fBmkdir /mnt/x/y\fP -ns1# \fBmount \-\-make\-private \-t tmpfs none /mnt/x/y\fP -ns1# \fBgrep /mnt /proc/self/mountinfo | sed \[aq]s/ \- .*//\[aq]\fP +.RB ns1# " mount \-\-make\-shared \-\-bind /mnt /mnt" +.RB ns1# " mkdir /mnt/x" +.RB ns1# " mount \-\-make\-private \-t tmpfs none /mnt/x" +.RB ns1# " mkdir /mnt/x/y" +.RB ns1# " mount \-\-make\-private \-t tmpfs none /mnt/x/y" +.RB ns1# " grep /mnt /proc/self/mountinfo | sed \[aq]s/ \- .*//\[aq]" 986 83 8:5 /mnt /mnt rw,relatime shared:344 989 986 0:56 / /mnt/x rw,relatime 990 989 0:57 / /mnt/x/y rw,relatime @@ -1208,9 +1208,9 @@ check the state of the propagated mounts rooted at .IP .in +4n .EX -ns1# \fBPS1=\[aq]ns2# \[aq] unshare \-\-user \-\-map\-root\-user \[rs]\fP - \fB\-\-mount \-\-propagation unchanged bash\fP -ns2# \fBgrep /mnt /proc/self/mountinfo | sed \[aq]s/ \- .*//\[aq]\fP +.RB ns1# " PS1=\[aq]ns2# \[aq] unshare \-\-user \-\-map\-root\-user \[rs]" +.B " \-\-mount \-\-propagation unchanged bash" +.RB ns2# " grep /mnt /proc/self/mountinfo | sed \[aq]s/ \- .*//\[aq]" 1239 1204 8:5 /mnt /mnt rw,relatime master:344 1240 1239 0:56 / /mnt/x rw,relatime 1241 1240 0:57 / /mnt/x/y rw,relatime @@ -1234,9 +1234,9 @@ at the location .IP .in +4n .EX -$ \fBPS1=\[aq]ns3# \[aq] sudo nsenter \-t 778501 \-\-user \-\-mount\fP -ns3# \fBmount \-\-rbind \-\-make\-private /mnt/x /mnt/ppp\fP -ns3# \fBgrep /mnt /proc/self/mountinfo | sed \[aq]s/ \- .*//\[aq]\fP +.RB $ " PS1=\[aq]ns3# \[aq] sudo nsenter \-t 778501 \-\-user \-\-mount" +.RB ns3# " mount \-\-rbind \-\-make\-private /mnt/x /mnt/ppp" +.RB ns3# " grep /mnt /proc/self/mountinfo | sed \[aq]s/ \- .*//\[aq]" 986 83 8:5 /mnt /mnt rw,relatime shared:344 989 986 0:56 / /mnt/x rw,relatime 990 989 0:57 / /mnt/x/y rw,relatime @@ -1255,7 +1255,7 @@ as can be verified by executing the following command in that shell session: .IP .in +4n .EX -ns2# \fBgrep /mnt /proc/self/mountinfo | sed \[aq]s/ \- .*//\[aq]\fP +.RB ns2# " grep /mnt /proc/self/mountinfo | sed \[aq]s/ \- .*//\[aq]" 1239 1204 8:5 /mnt /mnt rw,relatime master:344 1240 1239 0:56 / /mnt/x rw,relatime 1241 1240 0:57 / /mnt/x/y rw,relatime @@ -1276,10 +1276,10 @@ as shown by the following commands: .IP .in +4n .EX -ns2# \fBumount /mnt/ppp/y\fP +.RB ns2# " umount /mnt/ppp/y" umount: /mnt/ppp/y: not mounted. -ns2# \fBumount \-l /mnt/ppp | sed \[aq]s/ \- .*//\[aq]\fP # Succeeds... -ns2# \fBgrep /mnt /proc/self/mountinfo\fP +.RB ns2# " umount \-l /mnt/ppp | sed \[aq]s/ \- .*//\[aq]" " # Succeeds..." +.RB ns2# " grep /mnt /proc/self/mountinfo" 1239 1204 8:5 /mnt /mnt rw,relatime master:344 1240 1239 0:56 / /mnt/x rw,relatime 1241 1240 0:57 / /mnt/x/y rw,relatime @@ -1316,10 +1316,10 @@ a less privileged mount namespace, and indeed the kernel prevents this: .IP .in +4n .EX -$ \fBsudo mkdir /mnt/dir\fP -$ \fBsudo mount \-\-bind \-o ro /some/path /mnt/dir\fP -$ \fBsudo unshare \-\-user \-\-map\-root\-user \-\-mount \[rs]\fP - \fBmount \-o remount,rw /mnt/dir\fP +.RB $ " sudo mkdir /mnt/dir" +.RB $ " sudo mount \-\-bind \-o ro /some/path /mnt/dir" +.RB $ " sudo unshare \-\-user \-\-map\-root\-user \-\-mount \[rs]" +.B " mount \-o remount,rw /mnt/dir" mount: /mnt/dir: permission denied. .EE .in diff --git a/man/man7/namespaces.7 b/man/man7/namespaces.7 index 0e7f46661e..132ba89bc6 100644 --- a/man/man7/namespaces.7 +++ b/man/man7/namespaces.7 @@ -35,34 +35,34 @@ lB lB lB lB l lB lw(21n) lx. Namespace Flag Page Isolates _ -Cgroup CLONE_NEWCGROUP \fBcgroup_namespaces\fP(7) T{ +Cgroup CLONE_NEWCGROUP \f[B]cgroup_namespaces\f[](7) T{ .na .nh Cgroup root directory T} -IPC CLONE_NEWIPC \fBipc_namespaces\fP(7) T{ +IPC CLONE_NEWIPC \f[B]ipc_namespaces\f[](7) T{ .na .nh System V IPC, POSIX message queues T} -Network CLONE_NEWNET \fBnetwork_namespaces\fP(7) T{ +Network CLONE_NEWNET \f[B]network_namespaces\f[](7) T{ .na .nh Network devices, stacks, ports, etc. T} -Mount CLONE_NEWNS \fBmount_namespaces\fP(7) Mount points -PID CLONE_NEWPID \fBpid_namespaces\fP(7) Process IDs -Time CLONE_NEWTIME \fBtime_namespaces\fP(7) T{ +Mount CLONE_NEWNS \f[B]mount_namespaces\f[](7) Mount points +PID CLONE_NEWPID \f[B]pid_namespaces\f[](7) Process IDs +Time CLONE_NEWTIME \f[B]time_namespaces\f[](7) T{ .na .nh Boot and monotonic clocks T} -User CLONE_NEWUSER \fBuser_namespaces\fP(7) T{ +User CLONE_NEWUSER \f[B]user_namespaces\f[](7) T{ User and group IDs T} -UTS CLONE_NEWUTS \fButs_namespaces\fP(7) T{ +UTS CLONE_NEWUTS \f[B]uts_namespaces\f[](7) T{ .na .nh Hostname and NIS domain name @@ -134,7 +134,7 @@ no privilege is required to create a user namespace. .\" .\" ==================== The /proc/[pid]/ns/ directory ==================== .\" -.SS The \fI/proc/\fPpid\fI/ns/\fP directory +.SS The \f[I]/proc/\f[]pid\f[I]/ns/\f[] directory Each process has a .IR /proc/ pid /ns/ .\" See commit 6b4e306aa3dc94a0545eb9279475b1ab6209a31f @@ -144,7 +144,7 @@ supports being manipulated by .P .in +4n .EX -$ \fBls \-l /proc/$$/ns | awk \[aq]{print $1, $9, $10, $11}\[aq]\fP +.RB $ " ls \-l /proc/$$/ns | awk \[aq]{print $1, $9, $10, $11}\[aq]" total 0 lrwxrwxrwx. cgroup \-> cgroup:[4026531835] lrwxrwxrwx. ipc \-> ipc:[4026531839] @@ -201,7 +201,7 @@ the namespace type and inode number as in the following example: .P .in +4n .EX -$ \fBreadlink /proc/$$/ns/uts\fP +.RB $ " readlink /proc/$$/ns/uts" uts:[4026531838] .EE .in @@ -276,7 +276,7 @@ check; see .\" .\" ==================== The /proc/sys/user directory ==================== .\" -.SS The \fI/proc/sys/user\fP directory +.SS The \f[I]/proc/sys/user\f[] directory The files in the .I /proc/sys/user directory (which is present since Linux 4.9) expose limits diff --git a/man/man7/netlink.7 b/man/man7/netlink.7 index c29ec4582b..a1eb8a626c 100644 --- a/man/man7/netlink.7 +++ b/man/man7/netlink.7 @@ -222,7 +222,7 @@ for tab(:); l s lB lx. -Standard flag bits in \fInlmsg_flags\fP +Standard flag bits in \f[I]nlmsg_flags\f[] _ NLM_F_REQUEST:T{ Must be set on all request messages. diff --git a/man/man7/numa.7 b/man/man7/numa.7 index ac3e38112c..9fc16783ec 100644 --- a/man/man7/numa.7 +++ b/man/man7/numa.7 @@ -31,7 +31,7 @@ and However, applications should normally use the interface provided by .IR libnuma ; see "Library Support" below. -.SS \fI/proc/\fPpid\fI/numa_maps\fP (since Linux 2.6.14) +.SS \f[I]/proc/\f[]pid\f[I]/numa_maps\f[] (since Linux 2.6.14) .\" See also Changelog-2.6.14 This file displays information about a process's NUMA memory policy and allocation. @@ -135,7 +135,8 @@ if the kernel was configured and built with the .B CONFIG_NUMA option. .SS Library support -Link with \fI\-lnuma\fP +Link with +.I \-lnuma to get the system call definitions. .I libnuma and the required diff --git a/man/man7/pipe.7 b/man/man7/pipe.7 index 6b02ab179d..402331bc0f 100644 --- a/man/man7/pipe.7 +++ b/man/man7/pipe.7 @@ -260,7 +260,7 @@ whether there are multiple writers to the pipe, and on .IR n , the number of bytes to be written: .TP -\fBO_NONBLOCK\fP disabled, \fIn\fP <= \fBPIPE_BUF\fP +.BR O_NONBLOCK " disabled, \f[I]n\f[] <= " PIPE_BUF All .I n bytes are written atomically; @@ -269,7 +269,7 @@ may block if there is not room for .I n bytes to be written immediately .TP -\fBO_NONBLOCK\fP enabled, \fIn\fP <= \fBPIPE_BUF\fP +.BR O_NONBLOCK " enabled, \f[I]n\f[] <= " PIPE_BUF If there is room to write .I n bytes to the pipe, then @@ -283,7 +283,7 @@ fails, with set to .BR EAGAIN . .TP -\fBO_NONBLOCK\fP disabled, \fIn\fP > \fBPIPE_BUF\fP +.BR O_NONBLOCK " disabled, \f[I]n\f[] > " PIPE_BUF The write is nonatomic: the data given to .BR write (2) may be interleaved with @@ -295,7 +295,7 @@ blocks until .I n bytes have been written. .TP -\fBO_NONBLOCK\fP enabled, \fIn\fP > \fBPIPE_BUF\fP +.BR O_NONBLOCK " enabled, \f[I]n\f[] > " PIPE_BUF If the pipe is full, then .BR write (2) fails, with diff --git a/man/man7/process-keyring.7 b/man/man7/process-keyring.7 index 215c721244..23a4be8b70 100644 --- a/man/man7/process-keyring.7 +++ b/man/man7/process-keyring.7 @@ -19,7 +19,9 @@ the calling process's process keyring. .P From the .BR keyctl (1) -utility, '\fB@p\fP' can be used instead of a numeric key ID in +utility, +.RB ' @p ' +can be used instead of a numeric key ID in much the same way, but since .BR keyctl (1) is a program run after forking, this is of no utility. diff --git a/man/man7/pthreads.7 b/man/man7/pthreads.7 index bd4ea1c39e..b72db26acc 100644 --- a/man/man7/pthreads.7 +++ b/man/man7/pthreads.7 @@ -872,7 +872,7 @@ bash$ $( ldd /bin/ls | grep libc.so | awk \[aq]{print $3}\[aq] ) | \[rs] .in .SS Selecting the threading implementation: LD_ASSUME_KERNEL On systems with a glibc that supports both LinuxThreads and NPTL -(i.e., glibc 2.3.\fIx\fP), the +(i.e., glibc 2.3.*), the .B LD_ASSUME_KERNEL environment variable can be used to override the dynamic linker's default choice of threading implementation. diff --git a/man/man7/raw.7 b/man/man7/raw.7 index 12ccd8fdfa..8c325717e5 100644 --- a/man/man7/raw.7 +++ b/man/man7/raw.7 @@ -54,7 +54,7 @@ is not possible using raw sockets. tab(:) allbox; c s l l. -IP Header fields modified on sending by \fBIP_HDRINCL\fP +IP Header fields modified on sending by \f[B]IP_HDRINCL\f[] IP Checksum:Always filled in Source Address:Filled in when zero Packet ID:Filled in when zero diff --git a/man/man7/regex.7 b/man/man7/regex.7 index 43c630a747..4600e8a99b 100644 --- a/man/man7/regex.7 +++ b/man/man7/regex.7 @@ -53,16 +53,22 @@ POSIX.2 leaves some aspects of RE syntax and semantics open; "\*(dg" marks decisions on these aspects that may not be fully portable to other POSIX.2 implementations. .P -A (modern) RE is one\*(dg or more nonempty\*(dg \fIbranches\fR, +A (modern) RE is one\*(dg or more nonempty\*(dg +.IR branches , separated by \[aq]|\[aq]. It matches anything that matches one of the branches. .P -A branch is one\*(dg or more \fIpieces\fR, concatenated. +A branch is one\*(dg or more +.IR pieces , +concatenated. It matches a match for the first, followed by a match for the second, and so on. .P -A piece is an \fIatom\fR possibly followed -by a single\*(dg \[aq]*\[aq], \[aq]+\[aq], \[aq]?\[aq], or \fIbound\fR. +A piece is an +.I atom +possibly followed +by a single\*(dg \[aq]*\[aq], \[aq]+\[aq], \[aq]?\[aq], or +.IR bound . An atom followed by \[aq]*\[aq] matches a sequence of 0 or more matches of the atom. An atom followed by \[aq]+\[aq] @@ -70,7 +76,9 @@ matches a sequence of 1 or more matches of the atom. An atom followed by \[aq]?\[aq] matches a sequence of 0 or 1 matches of the atom. .P -A \fIbound\fR is \[aq]{\[aq] followed by an unsigned decimal integer, +A +.I bound +is \[aq]{\[aq] followed by an unsigned decimal integer, possibly followed by \[aq],\[aq] possibly followed by another unsigned decimal integer, always followed by \[aq]}\[aq]. @@ -78,24 +86,45 @@ The integers must lie between 0 and .B RE_DUP_MAX (255\*(dg) inclusive, and if there are two of them, the first may not exceed the second. -An atom followed by a bound containing one integer \fIi\fR +An atom followed by a bound containing one integer +.I i and no comma matches -a sequence of exactly \fIi\fR matches of the atom. +a sequence of exactly +.I i +matches of the atom. An atom followed by a bound -containing one integer \fIi\fR and a comma matches -a sequence of \fIi\fR or more matches of the atom. +containing one integer +.I i +and a comma matches +a sequence of +.I i +or more matches of the atom. An atom followed by a bound -containing two integers \fIi\fR and \fIj\fR matches -a sequence of \fIi\fR through \fIj\fR (inclusive) matches of the atom. +containing two integers +.I i +and +.I j +matches +a sequence of +.I i +through +.I j +(inclusive) matches of the atom. .P -An atom is a regular expression enclosed in "\fI()\fP" +An atom is a regular expression enclosed in +.RI \[dq] () \[dq] (matching a match for the regular expression), -an empty set of "\fI()\fP" (matching the null string)\*(dg, -a \fIbracket expression\fR (see below), +an empty set of +.RI \[dq] () \[dq] +(matching the null string)\*(dg, +a +.I bracket expression +(see below), \[aq].\[aq] (matching any single character), \[aq]\[ha]\[aq] (matching the null string at the beginning of a line), \[aq]$\[aq] (matching the null string at the end of a line), -a \[aq]\[rs]\[aq] followed by one of the characters "\fI\[ha].[$()|*+?{\[rs]\fP" +a \[aq]\[rs]\[aq] followed by one of the characters +.RI \[dq] \[ha].[$()|*+?{\[rs] \[dq] (matching that character taken as an ordinary character), a \[aq]\[rs]\[aq] followed by any other character\*(dg (matching that character taken as an ordinary character, @@ -106,17 +135,27 @@ is an ordinary character, not the beginning of a bound\*(dg. It is illegal to end an RE with \[aq]\[rs]\[aq]. .P -A \fIbracket expression\fR is a list of characters enclosed in "\fI[]\fP". +A +.I bracket expression +is a list of characters enclosed in +.RI \[dq] [] \[dq]. It normally matches any single character from the list (but see below). If the list begins with \[aq]\[ha]\[aq], it matches any single character -(but see below) \fInot\fR from the rest of the list. +(but see below) +.I not +from the rest of the list. If two characters in the list are separated by \[aq]\-\[aq], this is shorthand -for the full \fIrange\fR of characters between those two (inclusive) in the +for the full +.I range +of characters between those two (inclusive) in the collating sequence, -for example, "\fI[0\-9]\fP" in ASCII matches any decimal digit. +for example, +.RI \[dq] [0\-9] \[dq] +in ASCII matches any decimal digit. It is illegal\*(dg for two ranges to share an -endpoint, for example, "\fIa\-c\-e\fP". +endpoint, for example, +.RI \[dq] a\-c\-e \[dq]. Ranges are very collating-sequence-dependent, and portable programs should avoid relying on them. .P @@ -125,7 +164,10 @@ To include a literal \[aq]]\[aq] in the list, make it the first character To include a literal \[aq]\-\[aq], make it the first or last character, or the second endpoint of a range. To use a literal \[aq]\-\[aq] as the first endpoint of a range, -enclose it in "\fI[.\fP" and "\fI.]\fP" +enclose it in +.RI \[dq] [. \[dq] +and +.RI \[dq] .] \[dq] to make it a collating element (see below). With the exception of these and some combinations using \[aq][\[aq] (see next paragraphs), all other special characters, including \[aq]\[rs]\[aq], lose their @@ -134,31 +176,50 @@ special significance within a bracket expression. Within a bracket expression, a collating element (a character, a multicharacter sequence that collates as if it were a single character, or a collating-sequence name for either) -enclosed in "\fI[.\fP" and "\fI.]\fP" stands for the +enclosed in +.RI \[dq] [. \[dq] +and +.RI \[dq] .] \[dq] +stands for the sequence of characters of that collating element. The sequence is a single element of the bracket expression's list. A bracket expression containing a multicharacter collating element can thus match more than one character, for example, if the collating sequence includes a "ch" collating element, -then the RE "\fI[[.ch.]]*c\fP" matches the first five characters -of "chchcc". +then the RE +.RI \[dq] [[.ch.]]*c \[dq] +matches the first five characters of "chchcc". .P -Within a bracket expression, a collating element enclosed in "\fI[=\fP" and -"\fI=]\fP" is an equivalence class, standing for the sequences of characters +Within a bracket expression, a collating element enclosed in +.RI \[dq] [= \[dq] +and +.RI \[dq] =] \[dq] +is an equivalence class, standing for the sequences of characters of all collating elements equivalent to that one, including itself. (If there are no other equivalent collating elements, the treatment is as if the enclosing delimiters -were "\fI[.\fP" and "\fI.]\fP".) +were +.RI \[dq] [. \[dq] +and +.RI \[dq] .] \[dq].) For example, if o and \(^o are the members of an equivalence class, -then "\fI[[=o=]]\fP", "\fI[[=\(^o=]]\fP", -and "\fI[o\(^o]\fP" are all synonymous. +then +.RI \[dq] [[=o=]] \[dq], +.RI \[dq] [[=\(^o=]] \[dq], +and +.RI \[dq] [o\(^o] \[dq] +are all synonymous. An equivalence class may not\*(dg be an endpoint of a range. .P -Within a bracket expression, the name of a \fIcharacter class\fR enclosed -in "\fI[:\fP" and "\fI:]\fP" stands for the list -of all characters belonging to that -class. +Within a bracket expression, +the name of a +.I character class +enclosed in +.RI \[dq] [: \[dq] +and +.RI \[dq] :] \[dq] +stands for the list of all characters belonging to that class. Standard character class names are: .P .RS @@ -179,8 +240,11 @@ A character class may not be used as an endpoint of a range. .\" The following does not seem to apply in the glibc implementation .\" .P .\" There are two special cases\*(dg of bracket expressions: -.\" the bracket expressions "\fI[[:<:]]\fP" and "\fI[[:>:]]\fP" match -.\" the null string at the beginning and end of a word respectively. +.\" the bracket expressions +.\" .RI \[dq] [[:<:]] \[dq] +.\" and +.\" .RI \[dq] [[:>:]] \[dq] +.\" match the null string at the beginning and end of a word respectively. .\" A word is defined as a sequence of .\" word characters .\" which is neither preceded nor followed by @@ -210,12 +274,17 @@ their lower-level component subexpressions. Match lengths are measured in characters, not collating elements. A null string is considered longer than no match at all. For example, -"\fIbb*\fP" matches the three middle characters of "abbbc", -"\fI(wee|week)(knights|nights)\fP" +.RI \[dq] bb* \[dq] +matches the three middle characters of "abbbc", +.RI \[dq] (wee|week)(knights|nights) \[dq] matches all ten characters of "weeknights", -when "\fI(.*).*\fP" is matched against "abc" the parenthesized subexpression +when +.RI \[dq] (.*).* \[dq] +is matched against "abc" the parenthesized subexpression matches all three characters, and -when "\fI(a*)*\fP" is matched against "bc" +when +.RI \[dq] (a*)* \[dq] +is matched against "bc" both the whole RE and the parenthesized subexpression match the null string. .P @@ -225,10 +294,17 @@ alphabet. When an alphabetic that exists in multiple cases appears as an ordinary character outside a bracket expression, it is effectively transformed into a bracket expression containing both cases, -for example, \[aq]x\[aq] becomes "\fI[xX]\fP". +for example, \[aq]x\[aq] becomes +.RI \[dq] [xX] \[dq]. When it appears inside a bracket expression, all case counterparts -of it are added to the bracket expression, so that, for example, "\fI[x]\fP" -becomes "\fI[xX]\fP" and "\fI[\[ha]x]\fP" becomes "\fI[\[ha]xX]\fP". +of it are added to the bracket expression, so that, for example, +.RI \[dq] [x] \[dq] +becomes +.RI \[dq] [xX] \[dq] +and +.RI \[dq] [\[ha]x] \[dq] +becomes +.RI \[dq] [\[ha]xX] \[dq]. .P No particular limit is imposed on the length of REs\*(dg. Programs intended to be portable should not employ REs longer @@ -240,9 +316,15 @@ Obsolete ("basic") regular expressions differ in several respects. \[aq]|\[aq], \[aq]+\[aq], and \[aq]?\[aq] are ordinary characters and there is no equivalent for their functionality. -The delimiters for bounds are "\fI\[rs]{\fP" and "\fI\[rs]}\fP", +The delimiters for bounds are +.RI \[dq] \[rs]{ \[dq] +and +.RI \[dq] \[rs]} \[dq], with \[aq]{\[aq] and \[aq]}\[aq] by themselves ordinary characters. -The parentheses for nested subexpressions are "\fI\[rs](\fP" and "\fI\[rs])\fP", +The parentheses for nested subexpressions are +.RI \[dq] \[rs]( \[dq] +and +.RI \[dq] \[rs]) \[dq], with \[aq](\[aq] and \[aq])\[aq] by themselves ordinary characters. \[aq]\[ha]\[aq] is an ordinary character except at the beginning of the RE or\*(dg the beginning of a parenthesized subexpression, @@ -252,20 +334,19 @@ and \[aq]*\[aq] is an ordinary character if it appears at the beginning of the RE or the beginning of a parenthesized subexpression (after a possible leading \[aq]\[ha]\[aq]). .P -Finally, there is one new type of atom, a \fIback reference\fR: -\[aq]\[rs]\[aq] followed by a nonzero decimal digit \fId\fR +Finally, there is one new type of atom, a +.IR "back reference" : +\[aq]\[rs]\[aq] followed by a nonzero decimal digit +.I d matches the same sequence of characters -matched by the \fId\fRth parenthesized subexpression +matched by the +.IR d th +parenthesized subexpression (numbering subexpressions by the positions of their opening parentheses, left to right), so that, for example, -.I \[dq]\[rs]([bc]\[rs])\[rs]1\[dq] -matches -.I \[dq]bb\[dq] -or -.I \[dq]cc\[dq] -but not -.IR \[dq]bc\[dq] . +.RI \[dq] \[rs]([bc]\[rs])\[rs]1 \[dq] +matches "bb" or "cc" but not "bc". .SH BUGS Having two kinds of REs is a botch. .P @@ -279,7 +360,8 @@ Back references are a dreadful botch, posing major problems for efficient implementations. They are also somewhat vaguely defined (does -"\fIa\[rs](\[rs](b\[rs])*\[rs]2\[rs])*d\fP" match "abbbd"?). +.RI \[dq] a\[rs](\[rs](b\[rs])*\[rs]2\[rs])*d \[dq] +match "abbbd"?). Avoid using them. .P POSIX.2's specification of case-independent matching is vague. diff --git a/man/man7/sched.7 b/man/man7/sched.7 index fb8a69918a..39b629f0c2 100644 --- a/man/man7/sched.7 +++ b/man/man7/sched.7 @@ -86,20 +86,27 @@ and .SS Scheduling policies The scheduler is the kernel component that decides which runnable thread will be executed by the CPU next. -Each thread has an associated scheduling policy and a \fIstatic\fP +Each thread has an associated scheduling policy and a +.I static scheduling priority, .IR sched_priority . The scheduler makes its decisions based on knowledge of the scheduling policy and static priority of all threads on the system. .P For threads scheduled under one of the normal scheduling policies -(\fBSCHED_OTHER\fP, \fBSCHED_IDLE\fP, \fBSCHED_BATCH\fP), -\fIsched_priority\fP is not used in scheduling -decisions (it must be specified as 0). +.RB ( SCHED_OTHER , +.BR SCHED_IDLE , +.BR SCHED_BATCH ), +.I sched_priority +is not used in scheduling decisions +(it must be specified as 0). .P Processes scheduled under one of the real-time policies -(\fBSCHED_FIFO\fP, \fBSCHED_RR\fP) have a -\fIsched_priority\fP value in the range 1 (low) to 99 (high). +.RB ( SCHED_FIFO , +.BR SCHED_RR ) +have a +.I sched_priority +value in the range 1 (low) to 99 (high). (As the numbers imply, real-time threads always have higher priority than normal threads.) Note well: POSIX.1 requires an implementation to support only a @@ -111,8 +118,10 @@ and .BR sched_get_priority_max (2) to find the range of priorities supported for a particular policy. .P -Conceptually, the scheduler maintains a list of runnable -threads for each possible \fIsched_priority\fP value. +Conceptually, +the scheduler maintains a list of runnable threads for each possible +.I sched_priority +value. In order to determine which thread runs next, the scheduler looks for the nonempty list with the highest static priority and selects the thread at the head of this list. @@ -129,22 +138,35 @@ The scheduling policy determines the ordering only within the list of runnable threads with equal static priority. .SS SCHED_FIFO: First in-first out scheduling -\fBSCHED_FIFO\fP can be used only with static priorities higher than -0, which means that when a \fBSCHED_FIFO\fP thread becomes runnable, +.B SCHED_FIFO +can be used only with static priorities higher than 0, +which means that when a +.B SCHED_FIFO +thread becomes runnable, it will always immediately preempt any currently running -\fBSCHED_OTHER\fP, \fBSCHED_BATCH\fP, or \fBSCHED_IDLE\fP thread. -\fBSCHED_FIFO\fP is a simple scheduling +.BR SCHED_OTHER , +.BR SCHED_BATCH , +or +.B SCHED_IDLE +thread. +.B SCHED_FIFO is a simple scheduling algorithm without time slicing. For threads scheduled under the -\fBSCHED_FIFO\fP policy, the following rules apply: +.B SCHED_FIFO +policy, +the following rules apply: .IP \[bu] 3 -A running \fBSCHED_FIFO\fP thread that has been preempted by another thread of -higher priority will stay at the head of the list for its priority and -will resume execution as soon as all threads of higher priority are -blocked again. +A running +.B SCHED_FIFO +thread that has been preempted by another thread of higher priority +will stay at the head of the list for its priority and +will resume execution +as soon as all threads of higher priority are blocked again. .IP \[bu] -When a blocked \fBSCHED_FIFO\fP thread becomes runnable, it -will be inserted at the end of the list for its priority. +When a blocked +.B SCHED_FIFO +thread becomes runnable, +it will be inserted at the end of the list for its priority. .IP \[bu] If a call to .BR sched_setscheduler (2), @@ -186,26 +208,38 @@ A thread calling will be put at the end of the list. .P No other events will move a thread -scheduled under the \fBSCHED_FIFO\fP policy in the wait list of +scheduled under the +.B SCHED_FIFO +policy in the wait list of runnable threads with equal static priority. .P -A \fBSCHED_FIFO\fP -thread runs until either it is blocked by an I/O request, it is -preempted by a higher priority thread, or it calls +A +.B SCHED_FIFO +thread runs until either +it is blocked by an I/O request, +it is preempted by a higher priority thread, +or it calls .BR sched_yield (2). .SS SCHED_RR: Round-robin scheduling -\fBSCHED_RR\fP is a simple enhancement of \fBSCHED_FIFO\fP. -Everything -described above for \fBSCHED_FIFO\fP also applies to \fBSCHED_RR\fP, -except that each thread is allowed to run only for a maximum time -quantum. -If a \fBSCHED_RR\fP thread has been running for a time -period equal to or longer than the time quantum, it will be put at the -end of the list for its priority. -A \fBSCHED_RR\fP thread that has -been preempted by a higher priority thread and subsequently resumes -execution as a running thread will complete the unexpired portion of -its round-robin time quantum. +.B SCHED_RR +is a simple enhancement of +.BR SCHED_FIFO . +Everything described above for +.B SCHED_FIFO +also applies to +.BR SCHED_RR , +except that each thread is allowed to run only for a maximum time quantum. +If a +.B SCHED_RR +thread has been running for a time period +equal to or longer than the time quantum, +it will be put at the end of the list for its priority. +A +.B SCHED_RR +thread that has +been preempted by a higher priority thread +and subsequently resumes execution as a running thread +will complete the unexpired portion of its round-robin time quantum. The length of the time quantum can be retrieved using .BR sched_rr_get_interval (2). @@ -376,21 +410,27 @@ will yield the current job and wait for a new period to begin. .\" Is that intended? (Why?) .\" .SS SCHED_OTHER: Default Linux time-sharing scheduling -\fBSCHED_OTHER\fP can be used at only static priority 0 +.B SCHED_OTHER +can be used at only static priority 0 (i.e., threads under real-time policies always have priority over .B SCHED_OTHER processes). -\fBSCHED_OTHER\fP is the standard Linux time-sharing scheduler that is -intended for all threads that do not require the special -real-time mechanisms. +.B SCHED_OTHER +is the standard Linux time-sharing scheduler that is +intended for all threads that +do not require the special real-time mechanisms. .P -The thread to run is chosen from the static -priority 0 list based on a \fIdynamic\fP priority that is determined only +The thread to run is chosen from the static priority 0 list +based on a +.I dynamic +priority that is determined only inside this list. The dynamic priority is based on the nice value (see below) and is increased for each time quantum the thread is ready to run, but denied to run by the scheduler. -This ensures fair progress among all \fBSCHED_OTHER\fP threads. +This ensures fair progress among all +.B SCHED_OTHER +threads. .P In the Linux kernel source code, the .B SCHED_OTHER @@ -454,9 +494,11 @@ the autogroup feature and group scheduling, below. .\" .SS SCHED_BATCH: Scheduling batch processes (Since Linux 2.6.16.) -\fBSCHED_BATCH\fP can be used only at static priority 0. -This policy is similar to \fBSCHED_OTHER\fP in that it schedules -the thread according to its dynamic priority +.B SCHED_BATCH +can be used only at static priority 0. +This policy is similar to +.B SCHED_OTHER +in that it schedules the thread according to its dynamic priority (based on the nice value). The difference is that this policy will cause the scheduler to always assume @@ -476,7 +518,8 @@ interactivity causing extra preemptions (between the workload's tasks). .\" .SS SCHED_IDLE: Scheduling very low priority jobs (Since Linux 2.6.23.) -\fBSCHED_IDLE\fP can be used only at static priority 0; +.B SCHED_IDLE +can be used only at static priority 0; the process nice value has no influence for this policy. .P This policy is intended for running jobs at extremely low @@ -770,7 +813,7 @@ A process's autogroup (task group) membership can be viewed via the file .P .in +4n .EX -$ \fBcat /proc/1/autogroup\fP +.RB $ " cat /proc/1/autogroup" /autogroup\-1 nice 0 .EE .in @@ -894,7 +937,7 @@ of the processes in a terminal session: .P .in +4n .EX -$ \fBecho 10 > /proc/self/autogroup\fP +.RB $ " echo 10 > /proc/self/autogroup" .EE .in .SS Real-time features in the mainline Linux kernel @@ -912,7 +955,7 @@ These patches are named: .P .in +4n .EX -patch\-\fIkernelversion\fP\-rt\fIpatchversion\fP +.RI patch\- kernelversion \-rt patchversion .EE .in .P diff --git a/man/man7/sem_overview.7 b/man/man7/sem_overview.7 index fb9ff15356..207deb04b9 100644 --- a/man/man7/sem_overview.7 +++ b/man/man7/sem_overview.7 @@ -105,7 +105,7 @@ On Linux, named semaphores are created in a virtual filesystem, normally mounted under .IR /dev/shm , with names of the form -.IR \fBsem.\fPsomename . +.IR sem. somename. (This is the reason that semaphore names are limited to .BI NAME_MAX \-4 rather than diff --git a/man/man7/session-keyring.7 b/man/man7/session-keyring.7 index d54007ee18..949e14c8f2 100644 --- a/man/man7/session-keyring.7 +++ b/man/man7/session-keyring.7 @@ -26,8 +26,9 @@ the calling process's session keyring. .P From the .BR keyctl (1) -utility, '\fB@s\fP' can be used instead of a numeric key ID in -much the same way. +utility, +.RB ' @s ' +can be used instead of a numeric key ID in much the same way. .P A process's session keyring is inherited across .BR clone (2), diff --git a/man/man7/signal-safety.7 b/man/man7/signal-safety.7 index 36cbf8d6e4..f4fea3498e 100644 --- a/man/man7/signal-safety.7 +++ b/man/man7/signal-safety.7 @@ -74,209 +74,209 @@ the table details changes in the subsequent standards. lb lb lw(24n) l. Function Notes -\fBabort\fP(3) Added in POSIX.1-2001 TC1 -\fBaccept\fP(2) -\fBaccess\fP(2) -\fBaio_error\fP(3) -\fBaio_return\fP(3) -\fBaio_suspend\fP(3) See notes below -\fBalarm\fP(2) -\fBbind\fP(2) -\fBcfgetispeed\fP(3) -\fBcfgetospeed\fP(3) -\fBcfsetispeed\fP(3) -\fBcfsetospeed\fP(3) -\fBchdir\fP(2) -\fBchmod\fP(2) -\fBchown\fP(2) -\fBclock_gettime\fP(2) -\fBclose\fP(2) -\fBconnect\fP(2) -\fBcreat\fP(2) -\fBdup\fP(2) -\fBdup2\fP(2) +\f[B]abort\f[](3) Added in POSIX.1-2001 TC1 +\f[B]accept\f[](2) +\f[B]access\f[](2) +\f[B]aio_error\f[](3) +\f[B]aio_return\f[](3) +\f[B]aio_suspend\f[](3) See notes below +\f[B]alarm\f[](2) +\f[B]bind\f[](2) +\f[B]cfgetispeed\f[](3) +\f[B]cfgetospeed\f[](3) +\f[B]cfsetispeed\f[](3) +\f[B]cfsetospeed\f[](3) +\f[B]chdir\f[](2) +\f[B]chmod\f[](2) +\f[B]chown\f[](2) +\f[B]clock_gettime\f[](2) +\f[B]close\f[](2) +\f[B]connect\f[](2) +\f[B]creat\f[](2) +\f[B]dup\f[](2) +\f[B]dup2\f[](2) T{ .BR execl (3) T} T{ Added in POSIX.1-2008; see notes below T} -\fBexecle\fP(3) See notes below -\fBexecv\fP(3) Added in POSIX.1-2008 -\fBexecve\fP(2) -\fB_exit\fP(2) -\fB_Exit\fP(2) -\fBfaccessat\fP(2) Added in POSIX.1-2008 -\fBfchdir\fP(2) Added in POSIX.1-2008 TC1 -\fBfchmod\fP(2) -\fBfchmodat\fP(2) Added in POSIX.1-2008 -\fBfchown\fP(2) -\fBfchownat\fP(2) Added in POSIX.1-2008 -\fBfcntl\fP(2) -\fBfdatasync\fP(2) -\fBfexecve\fP(3) Added in POSIX.1-2008 -\fBffs\fP(3) Added in POSIX.1-2008 TC2 -\fBfork\fP(2) See notes below -\fBfstat\fP(2) -\fBfstatat\fP(2) Added in POSIX.1-2008 -\fBfsync\fP(2) -\fBftruncate\fP(2) -\fBfutimens\fP(3) Added in POSIX.1-2008 -\fBgetegid\fP(2) -\fBgeteuid\fP(2) -\fBgetgid\fP(2) -\fBgetgroups\fP(2) -\fBgetpeername\fP(2) -\fBgetpgrp\fP(2) -\fBgetpid\fP(2) -\fBgetppid\fP(2) -\fBgetsockname\fP(2) -\fBgetsockopt\fP(2) -\fBgetuid\fP(2) -\fBhtonl\fP(3) Added in POSIX.1-2008 TC2 -\fBhtons\fP(3) Added in POSIX.1-2008 TC2 -\fBkill\fP(2) -\fBlink\fP(2) -\fBlinkat\fP(2) Added in POSIX.1-2008 -\fBlisten\fP(2) +\f[B]execle\f[](3) See notes below +\f[B]execv\f[](3) Added in POSIX.1-2008 +\f[B]execve\f[](2) +\f[B]_exit\f[](2) +\f[B]_Exit\f[](2) +\f[B]faccessat\f[](2) Added in POSIX.1-2008 +\f[B]fchdir\f[](2) Added in POSIX.1-2008 TC1 +\f[B]fchmod\f[](2) +\f[B]fchmodat\f[](2) Added in POSIX.1-2008 +\f[B]fchown\f[](2) +\f[B]fchownat\f[](2) Added in POSIX.1-2008 +\f[B]fcntl\f[](2) +\f[B]fdatasync\f[](2) +\f[B]fexecve\f[](3) Added in POSIX.1-2008 +\f[B]ffs\f[](3) Added in POSIX.1-2008 TC2 +\f[B]fork\f[](2) See notes below +\f[B]fstat\f[](2) +\f[B]fstatat\f[](2) Added in POSIX.1-2008 +\f[B]fsync\f[](2) +\f[B]ftruncate\f[](2) +\f[B]futimens\f[](3) Added in POSIX.1-2008 +\f[B]getegid\f[](2) +\f[B]geteuid\f[](2) +\f[B]getgid\f[](2) +\f[B]getgroups\f[](2) +\f[B]getpeername\f[](2) +\f[B]getpgrp\f[](2) +\f[B]getpid\f[](2) +\f[B]getppid\f[](2) +\f[B]getsockname\f[](2) +\f[B]getsockopt\f[](2) +\f[B]getuid\f[](2) +\f[B]htonl\f[](3) Added in POSIX.1-2008 TC2 +\f[B]htons\f[](3) Added in POSIX.1-2008 TC2 +\f[B]kill\f[](2) +\f[B]link\f[](2) +\f[B]linkat\f[](2) Added in POSIX.1-2008 +\f[B]listen\f[](2) T{ .BR longjmp (3) T} T{ Added in POSIX.1-2008 TC2; see notes below T} -\fBlseek\fP(2) -\fBlstat\fP(2) -\fBmemccpy\fP(3) Added in POSIX.1-2008 TC2 -\fBmemchr\fP(3) Added in POSIX.1-2008 TC2 -\fBmemcmp\fP(3) Added in POSIX.1-2008 TC2 -\fBmemcpy\fP(3) Added in POSIX.1-2008 TC2 -\fBmemmove\fP(3) Added in POSIX.1-2008 TC2 -\fBmemset\fP(3) Added in POSIX.1-2008 TC2 -\fBmkdir\fP(2) -\fBmkdirat\fP(2) Added in POSIX.1-2008 -\fBmkfifo\fP(3) -\fBmkfifoat\fP(3) Added in POSIX.1-2008 -\fBmknod\fP(2) Added in POSIX.1-2008 -\fBmknodat\fP(2) Added in POSIX.1-2008 -\fBntohl\fP(3) Added in POSIX.1-2008 TC2 -\fBntohs\fP(3) Added in POSIX.1-2008 TC2 -\fBopen\fP(2) -\fBopenat\fP(2) Added in POSIX.1-2008 -\fBpause\fP(2) -\fBpipe\fP(2) -\fBpoll\fP(2) -\fBposix_trace_event\fP(3) -\fBpselect\fP(2) -\fBpthread_kill\fP(3) Added in POSIX.1-2008 TC1 -\fBpthread_self\fP(3) Added in POSIX.1-2008 TC1 -\fBpthread_sigmask\fP(3) Added in POSIX.1-2008 TC1 -\fBraise\fP(3) -\fBread\fP(2) -\fBreadlink\fP(2) -\fBreadlinkat\fP(2) Added in POSIX.1-2008 -\fBrecv\fP(2) -\fBrecvfrom\fP(2) -\fBrecvmsg\fP(2) -\fBrename\fP(2) -\fBrenameat\fP(2) Added in POSIX.1-2008 -\fBrmdir\fP(2) -\fBselect\fP(2) -\fBsem_post\fP(3) -\fBsend\fP(2) -\fBsendmsg\fP(2) -\fBsendto\fP(2) -\fBsetgid\fP(2) -\fBsetpgid\fP(2) -\fBsetsid\fP(2) -\fBsetsockopt\fP(2) -\fBsetuid\fP(2) -\fBshutdown\fP(2) -\fBsigaction\fP(2) -\fBsigaddset\fP(3) -\fBsigdelset\fP(3) -\fBsigemptyset\fP(3) -\fBsigfillset\fP(3) -\fBsigismember\fP(3) +\f[B]lseek\f[](2) +\f[B]lstat\f[](2) +\f[B]memccpy\f[](3) Added in POSIX.1-2008 TC2 +\f[B]memchr\f[](3) Added in POSIX.1-2008 TC2 +\f[B]memcmp\f[](3) Added in POSIX.1-2008 TC2 +\f[B]memcpy\f[](3) Added in POSIX.1-2008 TC2 +\f[B]memmove\f[](3) Added in POSIX.1-2008 TC2 +\f[B]memset\f[](3) Added in POSIX.1-2008 TC2 +\f[B]mkdir\f[](2) +\f[B]mkdirat\f[](2) Added in POSIX.1-2008 +\f[B]mkfifo\f[](3) +\f[B]mkfifoat\f[](3) Added in POSIX.1-2008 +\f[B]mknod\f[](2) Added in POSIX.1-2008 +\f[B]mknodat\f[](2) Added in POSIX.1-2008 +\f[B]ntohl\f[](3) Added in POSIX.1-2008 TC2 +\f[B]ntohs\f[](3) Added in POSIX.1-2008 TC2 +\f[B]open\f[](2) +\f[B]openat\f[](2) Added in POSIX.1-2008 +\f[B]pause\f[](2) +\f[B]pipe\f[](2) +\f[B]poll\f[](2) +\f[B]posix_trace_event\f[](3) +\f[B]pselect\f[](2) +\f[B]pthread_kill\f[](3) Added in POSIX.1-2008 TC1 +\f[B]pthread_self\f[](3) Added in POSIX.1-2008 TC1 +\f[B]pthread_sigmask\f[](3) Added in POSIX.1-2008 TC1 +\f[B]raise\f[](3) +\f[B]read\f[](2) +\f[B]readlink\f[](2) +\f[B]readlinkat\f[](2) Added in POSIX.1-2008 +\f[B]recv\f[](2) +\f[B]recvfrom\f[](2) +\f[B]recvmsg\f[](2) +\f[B]rename\f[](2) +\f[B]renameat\f[](2) Added in POSIX.1-2008 +\f[B]rmdir\f[](2) +\f[B]select\f[](2) +\f[B]sem_post\f[](3) +\f[B]send\f[](2) +\f[B]sendmsg\f[](2) +\f[B]sendto\f[](2) +\f[B]setgid\f[](2) +\f[B]setpgid\f[](2) +\f[B]setsid\f[](2) +\f[B]setsockopt\f[](2) +\f[B]setuid\f[](2) +\f[B]shutdown\f[](2) +\f[B]sigaction\f[](2) +\f[B]sigaddset\f[](3) +\f[B]sigdelset\f[](3) +\f[B]sigemptyset\f[](3) +\f[B]sigfillset\f[](3) +\f[B]sigismember\f[](3) T{ .BR siglongjmp (3) T} T{ Added in POSIX.1-2008 TC2; see notes below T} -\fBsignal\fP(2) -\fBsigpause\fP(3) -\fBsigpending\fP(2) -\fBsigprocmask\fP(2) -\fBsigqueue\fP(2) -\fBsigset\fP(3) -\fBsigsuspend\fP(2) -\fBsleep\fP(3) -\fBsockatmark\fP(3) Added in POSIX.1-2001 TC2 -\fBsocket\fP(2) -\fBsocketpair\fP(2) -\fBstat\fP(2) -\fBstpcpy\fP(3) Added in POSIX.1-2008 TC2 -\fBstpncpy\fP(3) Added in POSIX.1-2008 TC2 -\fBstrcat\fP(3) Added in POSIX.1-2008 TC2 -\fBstrchr\fP(3) Added in POSIX.1-2008 TC2 -\fBstrcmp\fP(3) Added in POSIX.1-2008 TC2 -\fBstrcpy\fP(3) Added in POSIX.1-2008 TC2 -\fBstrcspn\fP(3) Added in POSIX.1-2008 TC2 -\fBstrlen\fP(3) Added in POSIX.1-2008 TC2 -\fBstrncat\fP(3) Added in POSIX.1-2008 TC2 -\fBstrncmp\fP(3) Added in POSIX.1-2008 TC2 -\fBstrncpy\fP(3) Added in POSIX.1-2008 TC2 -\fBstrnlen\fP(3) Added in POSIX.1-2008 TC2 -\fBstrpbrk\fP(3) Added in POSIX.1-2008 TC2 -\fBstrrchr\fP(3) Added in POSIX.1-2008 TC2 -\fBstrspn\fP(3) Added in POSIX.1-2008 TC2 -\fBstrstr\fP(3) Added in POSIX.1-2008 TC2 -\fBstrtok_r\fP(3) Added in POSIX.1-2008 TC2 -\fBsymlink\fP(2) -\fBsymlinkat\fP(2) Added in POSIX.1-2008 -\fBtcdrain\fP(3) -\fBtcflow\fP(3) -\fBtcflush\fP(3) -\fBtcgetattr\fP(3) -\fBtcgetpgrp\fP(3) -\fBtcsendbreak\fP(3) -\fBtcsetattr\fP(3) -\fBtcsetpgrp\fP(3) -\fBtime\fP(2) -\fBtimer_getoverrun\fP(2) -\fBtimer_gettime\fP(2) -\fBtimer_settime\fP(2) -\fBtimes\fP(2) -\fBumask\fP(2) -\fBuname\fP(2) -\fBunlink\fP(2) -\fBunlinkat\fP(2) Added in POSIX.1-2008 -\fButime\fP(2) -\fButimensat\fP(2) Added in POSIX.1-2008 -\fButimes\fP(2) Added in POSIX.1-2008 -\fBwait\fP(2) -\fBwaitpid\fP(2) -\fBwcpcpy\fP(3) Added in POSIX.1-2008 TC2 -\fBwcpncpy\fP(3) Added in POSIX.1-2008 TC2 -\fBwcscat\fP(3) Added in POSIX.1-2008 TC2 -\fBwcschr\fP(3) Added in POSIX.1-2008 TC2 -\fBwcscmp\fP(3) Added in POSIX.1-2008 TC2 -\fBwcscpy\fP(3) Added in POSIX.1-2008 TC2 -\fBwcscspn\fP(3) Added in POSIX.1-2008 TC2 -\fBwcslen\fP(3) Added in POSIX.1-2008 TC2 -\fBwcsncat\fP(3) Added in POSIX.1-2008 TC2 -\fBwcsncmp\fP(3) Added in POSIX.1-2008 TC2 -\fBwcsncpy\fP(3) Added in POSIX.1-2008 TC2 -\fBwcsnlen\fP(3) Added in POSIX.1-2008 TC2 -\fBwcspbrk\fP(3) Added in POSIX.1-2008 TC2 -\fBwcsrchr\fP(3) Added in POSIX.1-2008 TC2 -\fBwcsspn\fP(3) Added in POSIX.1-2008 TC2 -\fBwcsstr\fP(3) Added in POSIX.1-2008 TC2 -\fBwcstok\fP(3) Added in POSIX.1-2008 TC2 -\fBwmemchr\fP(3) Added in POSIX.1-2008 TC2 -\fBwmemcmp\fP(3) Added in POSIX.1-2008 TC2 -\fBwmemcpy\fP(3) Added in POSIX.1-2008 TC2 -\fBwmemmove\fP(3) Added in POSIX.1-2008 TC2 -\fBwmemset\fP(3) Added in POSIX.1-2008 TC2 -\fBwrite\fP(2) +\f[B]signal\f[](2) +\f[B]sigpause\f[](3) +\f[B]sigpending\f[](2) +\f[B]sigprocmask\f[](2) +\f[B]sigqueue\f[](2) +\f[B]sigset\f[](3) +\f[B]sigsuspend\f[](2) +\f[B]sleep\f[](3) +\f[B]sockatmark\f[](3) Added in POSIX.1-2001 TC2 +\f[B]socket\f[](2) +\f[B]socketpair\f[](2) +\f[B]stat\f[](2) +\f[B]stpcpy\f[](3) Added in POSIX.1-2008 TC2 +\f[B]stpncpy\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strcat\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strchr\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strcmp\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strcpy\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strcspn\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strlen\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strncat\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strncmp\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strncpy\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strnlen\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strpbrk\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strrchr\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strspn\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strstr\f[](3) Added in POSIX.1-2008 TC2 +\f[B]strtok_r\f[](3) Added in POSIX.1-2008 TC2 +\f[B]symlink\f[](2) +\f[B]symlinkat\f[](2) Added in POSIX.1-2008 +\f[B]tcdrain\f[](3) +\f[B]tcflow\f[](3) +\f[B]tcflush\f[](3) +\f[B]tcgetattr\f[](3) +\f[B]tcgetpgrp\f[](3) +\f[B]tcsendbreak\f[](3) +\f[B]tcsetattr\f[](3) +\f[B]tcsetpgrp\f[](3) +\f[B]time\f[](2) +\f[B]timer_getoverrun\f[](2) +\f[B]timer_gettime\f[](2) +\f[B]timer_settime\f[](2) +\f[B]times\f[](2) +\f[B]umask\f[](2) +\f[B]uname\f[](2) +\f[B]unlink\f[](2) +\f[B]unlinkat\f[](2) Added in POSIX.1-2008 +\f[B]utime\f[](2) +\f[B]utimensat\f[](2) Added in POSIX.1-2008 +\f[B]utimes\f[](2) Added in POSIX.1-2008 +\f[B]wait\f[](2) +\f[B]waitpid\f[](2) +\f[B]wcpcpy\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcpncpy\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcscat\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcschr\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcscmp\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcscpy\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcscspn\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcslen\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcsncat\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcsncmp\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcsncpy\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcsnlen\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcspbrk\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcsrchr\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcsspn\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcsstr\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wcstok\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wmemchr\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wmemcmp\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wmemcpy\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wmemmove\f[](3) Added in POSIX.1-2008 TC2 +\f[B]wmemset\f[](3) Added in POSIX.1-2008 TC2 +\f[B]write\f[](2) .TE .P Notes: diff --git a/man/man7/signal.7 b/man/man7/signal.7 index 83251e0711..375a1e3a7f 100644 --- a/man/man7/signal.7 +++ b/man/man7/signal.7 @@ -367,27 +367,27 @@ l c c l ____ lB c c l. Signal Standard Action Comment -SIGABRT P1990 Core Abort signal from \fBabort\fP(3) -SIGALRM P1990 Term Timer signal from \fBalarm\fP(2) +SIGABRT P1990 Core Abort signal from \f[B]abort\f[](3) +SIGALRM P1990 Term Timer signal from \f[B]alarm\f[](2) SIGBUS P2001 Core Bus error (bad memory access) SIGCHLD P2001 Ign Child stopped, terminated, or continued -SIGCLD \- Ign A synonym for \fBSIGCHLD\fP +SIGCLD \- Ign A synonym for \f[B]SIGCHLD\f[] SIGCONT P1990 Cont Continue if stopped SIGEMT \- Term Emulator trap SIGFPE P1990 Core Erroneous arithmetic operation SIGHUP P1990 Term Hangup detected on controlling terminal or death of controlling process SIGILL P1990 Core Illegal Instruction -SIGINFO \- A synonym for \fBSIGPWR\fP +SIGINFO \- A synonym for \f[B]SIGPWR\f[] SIGINT P1990 Term Interrupt from keyboard SIGIO \- Term I/O now possible (4.2BSD) -SIGIOT \- Core IOT trap. A synonym for \fBSIGABRT\fP +SIGIOT \- Core IOT trap. A synonym for \f[B]SIGABRT\f[] SIGKILL P1990 Term Kill signal SIGLOST \- Term File lock lost (unused) SIGPIPE P1990 Term Broken pipe: write to pipe with no - readers; see \fBpipe\fP(7) + readers; see \f[B]pipe\f[](7) SIGPOLL P2001 Term Pollable event (Sys V); - synonym for \fBSIGIO\fP + synonym for \f[B]SIGIO\f[] SIGPROF P2001 Term Profiling timer expired SIGPWR \- Term Power failure (System V) SIGQUIT P1990 Core Quit from keyboard @@ -396,20 +396,20 @@ SIGSTKFLT \- Term Stack fault on coprocessor (unused) SIGSTOP P1990 Stop Stop process SIGTSTP P1990 Stop Stop typed at terminal SIGSYS P2001 Core Bad system call (SVr4); - see also \fBseccomp\fP(2) + see also \f[B]seccomp\f[](2) SIGTERM P1990 Term Termination signal SIGTRAP P2001 Core Trace/breakpoint trap SIGTTIN P1990 Stop Terminal input for background process SIGTTOU P1990 Stop Terminal output for background process -SIGUNUSED \- Core Synonymous with \fBSIGSYS\fP +SIGUNUSED \- Core Synonymous with \f[B]SIGSYS\f[] SIGURG P2001 Ign Urgent condition on socket (4.2BSD) SIGUSR1 P1990 Term User-defined signal 1 SIGUSR2 P1990 Term User-defined signal 2 SIGVTALRM P2001 Term Virtual alarm clock (4.2BSD) SIGXCPU P2001 Core CPU time limit exceeded (4.2BSD); - see \fBsetrlimit\fP(2) + see \f[B]setrlimit\f[](2) SIGXFSZ P2001 Core File size limit exceeded (4.2BSD); - see \fBsetrlimit\fP(2) + see \f[B]setrlimit\f[](2) SIGWINCH \- Ign Window resize signal (4.3BSD, Sun) .TE .P @@ -649,12 +649,12 @@ The old and new system calls are as follows: lb lb l l. Linux 2.0 and earlier Linux 2.2 and later -\fBsigaction\fP(2) \fBrt_sigaction\fP(2) -\fBsigpending\fP(2) \fBrt_sigpending\fP(2) -\fBsigprocmask\fP(2) \fBrt_sigprocmask\fP(2) -\fBsigreturn\fP(2) \fBrt_sigreturn\fP(2) -\fBsigsuspend\fP(2) \fBrt_sigsuspend\fP(2) -\fBsigtimedwait\fP(2) \fBrt_sigtimedwait\fP(2) +\f[B]sigaction\f[](2) \f[B]rt_sigaction\f[](2) +\f[B]sigpending\f[](2) \f[B]rt_sigpending\f[](2) +\f[B]sigprocmask\f[](2) \f[B]rt_sigprocmask\f[](2) +\f[B]sigreturn\f[](2) \f[B]rt_sigreturn\f[](2) +\f[B]sigsuspend\f[](2) \f[B]rt_sigsuspend\f[](2) +\f[B]sigtimedwait\f[](2) \f[B]rt_sigtimedwait\f[](2) .TE .\" .SS Interruption of system calls and library functions by signal handlers diff --git a/man/man7/standards.7 b/man/man7/standards.7 index 06a9f0cec0..e107a1f547 100644 --- a/man/man7/standards.7 +++ b/man/man7/standards.7 @@ -126,13 +126,13 @@ IEEE Std 1003.2-1992, describing commands and utilities, ratified by ISO in 1993 .RI ( "ISO/IEC 9945-2:1993" ). .TP -.BR POSIX.1b " (formerly known as \fIPOSIX.4\fP)" +.BR POSIX.1b " (formerly known as \f[I]POSIX.4\f[])" IEEE Std 1003.1b-1993, describing real-time facilities for portable operating systems, ratified by ISO in 1996 .RI ( "ISO/IEC 9945-1:1996" ). .TP -.BR POSIX.1c " (formerly known as \fIPOSIX.4a\fP)" +.BR POSIX.1c " (formerly known as \f[I]POSIX.4a\f[])" IEEE Std 1003.1c-1995, which describes the POSIX threads interfaces. .TP .B POSIX.1d diff --git a/man/man7/suffixes.7 b/man/man7/suffixes.7 index 1341066bb3..e76b52fee3 100644 --- a/man/man7/suffixes.7 +++ b/man/man7/suffixes.7 @@ -36,12 +36,12 @@ lI | l . Suffix File type \&,v files for RCS (Revision Control System) \&- backup file -\&.C C++ source code, equivalent to \fI.cc\fP -\&.F Fortran source with \fBcpp\fP(1) directives +\&.C C++ source code, equivalent to \f[I].cc\f[] +\&.F Fortran source with \f[B]cpp\f[](1) directives \& or file compressed using freeze -\&.S assembler source with \fBcpp\fP(1) directives +\&.S assembler source with \f[B]cpp\f[](1) directives \&.Y file compressed using yabba -\&.Z file compressed using \fBcompress\fP(1) +\&.Z file compressed using \f[B]compress\f[](1) \&.[0\-9]+gf TeX generic font files \&.[0\-9]+pk TeX packed font files \&.[1\-9] manual page for the corresponding section @@ -53,9 +53,9 @@ Suffix File type \&.ads Ada spec source \&.afm PostScript font metrics \&.al Perl autoload file -\&.am \fBautomake\fP(1) input file -\&.arc \fBarc\fP(1) archive -\&.arj \fBarj\fP(1) archive +\&.am \f[B]automake\f[](1) input file +\&.arc \f[B]arc\f[](1) archive +\&.arj \f[B]arj\f[](1) archive \&.asc PGP ASCII-armored data \&.asm (GNU) assembler source file \&.au Audio sound file @@ -64,7 +64,7 @@ Suffix File type \&.awk AWK language program \&.b LILO boot loader image \&.bak backup file -\&.bash \fBbash\fP(1) shell script +\&.bash \f[B]bash\f[](1) shell script \&.bb basic block list data produced by \& gcc \-ftest\-coverage \&.bbg basic block graph data produced by @@ -74,7 +74,7 @@ Suffix File type \&.bib TeX bibliographic database, BibTeX input \&.bm bitmap source \&.bmp bitmap -\&.bz2 file compressed using \fBbzip2\fP(1) +\&.bz2 file compressed using \f[B]bzip2\f[](1) \&.c C source \&.cat message catalog files \&.cc C++ source @@ -85,15 +85,15 @@ Suffix File type \&.class Java compiled byte-code \&.conf configuration file \&.config configuration file -\&.cpp equivalent to \fI.cc\fR -\&.csh \fBcsh\fP(1) shell script -\&.cxx equivalent to \fI.cc\fR +\&.cpp equivalent to \f[I].cc\f[] +\&.csh \f[B]csh\f[](1) shell script +\&.cxx equivalent to \f[I].cc\f[] \&.dat data file \&.deb Debian software package \&.def Modula-2 source for definition modules \&.def other definition files \&.desc initial part of mail message unpacked with -\& \fBmunpack\fP(1) +\& \f[B]munpack\f[](1) \&.diff T{ file differences (\c .BR diff (1) @@ -121,12 +121,12 @@ T} \&.gif Compuserve Graphics Image File format \&.gmo GNU format message catalog \&.gsf Ghostscript fonts -\&.gz file compressed using \fBgzip\fP(1) +\&.gz file compressed using \f[B]gzip\f[](1) \&.h C or C++ header files \&.help help file -\&.hf equivalent to \fI.help\fP -\&.hlp equivalent to \fI.help\fP -\&.htm poor man's \fI.html\fP +\&.hf equivalent to \f[I].help\f[] +\&.hlp equivalent to \f[I].help\f[] +\&.htm poor man's \f[I].html\f[] \&.html HTML document used with the World Wide Web \&.hqx 7-bit encoded Macintosh file \&.i C source after preprocessing @@ -142,29 +142,29 @@ T} \& itcl ([incr Tcl]) is an OO extension of tcl \&.java a Java source file \&.jpeg Joint Photographic Experts Group format -\&.jpg poor man's \fI.jpeg\fP +\&.jpg poor man's \f[I].jpeg\f[] \&.js JavaScript source code \&.jsx JSX (JavaScript XML-like extension) source code -\&.kmap \fBlyx\fP(1) keymap -\&.l equivalent to \fI.lex\fP or \fI.lisp\fP -\&.lex \fBlex\fP(1) or \fBflex\fP(1) files +\&.kmap \f[B]lyx\f[](1) keymap +\&.l equivalent to \f[I].lex\f[] or \f[I].lisp\f[] +\&.lex \f[B]lex\f[](1) or \f[B]flex\f[](1) files \&.lha lharc archive \&.lib Common-Lisp library \&.lisp Lisp source -\&.ln files for use with \fBlint\fP(1) +\&.ln files for use with \f[B]lint\f[](1) \&.log log file, in particular produced by TeX \&.lsm Linux Software Map entry \&.lsp Common-Lisp source \&.lzh lharc archive \&.m Objective-C source code -\&.m4 \fBm4\fP(1) source +\&.m4 \f[B]m4\f[](1) source \&.mac macro files for various programs \&.man manual page (usually source rather than formatted) \&.map map files for various programs \&.me Nroff source using the me macro package \&.mf Metafont (font generator for TeX) source \&.mgp MagicPoint file -\&.mm sources for \fBgroff\fP(1) in mm - format +\&.mm sources for \f[B]groff\f[](1) in mm - format \&.mo Message catalog binary file \&.mod Modula-2 source for implementation modules \&.mov (quicktime) movie @@ -174,15 +174,15 @@ T} \&.mpeg movie file \&.o object file \&.old old or backup file -\&.orig backup (original) version of a file, from \fBpatch\fP(1) +\&.orig backup (original) version of a file, from \f[B]patch\f[](1) \&.out output file, often executable program (a.out) \&.p Pascal source \&.pag dbm data base data file -\&.patch file differences for \fBpatch\fP(1) +\&.patch file differences for \f[B]patch\f[](1) \&.pbm portable bitmap format \&.pcf X11 font files \&.pdf Adobe Portable Data Format -\& (use Acrobat/\fBacroread\fP or \fBxpdf\fP) +\& (use Acrobat/\f[B]acroread\f[] or \f[B]xpdf\f[]) \&.perl Perl source (see .ph, .pl, and .pm) \&.pfa PostScript font definition files, ASCII format \&.pfb PostScript font definition files, binary format @@ -196,7 +196,7 @@ T} \&.pm Perl module \&.png Portable Network Graphics file \&.po Message catalog source -\&.pod \fBperldoc\fP(1) file +\&.pod \f[B]perldoc\f[](1) file \&.ppm portable pixmap format \&.pr bitmap source \&.ps PostScript file @@ -204,46 +204,46 @@ T} \&.pyc compiled python \&.qt quicktime movie \&.r RATFOR source (obsolete) -\&.rej patches that \fBpatch\fP(1) couldn't apply +\&.rej patches that \f[B]patch\f[](1) couldn't apply \&.rpm RPM software package \&.rtf Rich Text Format file \&.rules rules for something \&.s assembler source \&.sa stub libraries for a.out shared libraries -\&.sc \fBsc\fP(1) spreadsheet commands +\&.sc \f[B]sc\f[](1) spreadsheet commands \&.scm Scheme source code \&.sed sed source file \&.sgml SGML source file -\&.sh \fBsh\fP(1) scripts -\&.shar archive created by the \fBshar\fP(1) utility +\&.sh \f[B]sh\f[](1) scripts +\&.shar archive created by the \f[B]shar\f[](1) utility \&.shtml HTML using Server Side Includes \&.so Shared library or dynamically loadable object \&.sql SQL source \&.sqml SQML schema or query program \&.sty LaTeX style files \&.sym Modula-2 compiled definition modules -\&.tar archive created by the \fBtar\fP(1) utility -\&.tar.Z tar(1) archive compressed with \fBcompress\fP(1) -\&.tar.bz2 tar(1) archive compressed with \fBbzip2\fP(1) -\&.tar.gz tar(1) archive compressed with \fBgzip\fP(1) -\&.taz tar(1) archive compressed with \fBcompress\fP(1) +\&.tar archive created by the \f[B]tar\f[](1) utility +\&.tar.Z tar(1) archive compressed with \f[B]compress\f[](1) +\&.tar.bz2 tar(1) archive compressed with \f[B]bzip2\f[](1) +\&.tar.gz tar(1) archive compressed with \f[B]gzip\f[](1) +\&.taz tar(1) archive compressed with \f[B]compress\f[](1) \&.tcl tcl source code \&.tex TeX or LaTeX source -\&.texi equivalent to \fI.texinfo\fP +\&.texi equivalent to \f[I].texinfo\f[] \&.texinfo Texinfo documentation source \&.text text file \&.tfm TeX font metric file -\&.tgz tar archive compressed with \fBgzip\fP(1) -\&.tif poor man's \fI.tiff\fP +\&.tgz tar archive compressed with \f[B]gzip\f[](1) +\&.tif poor man's \f[I].tiff\f[] \&.tiff Tagged Image File Format \&.tk tcl/tk script \&.tmp temporary file \&.tmpl template files \&.ts TypeScript source code -\&.tsx TypeScript with JSX source code (\fI.ts\fP + \fI.jsx\fP) -\&.txt equivalent to \fI.text\fP -\&.uu equivalent to \fI.uue\fP -\&.uue binary file encoded with \fBuuencode\fP(1) +\&.tsx TypeScript with JSX source code (\f[I].ts\f[] + \f[I].jsx\f[]) +\&.txt equivalent to \f[I].text\f[] +\&.uu equivalent to \f[I].uue\f[] +\&.uue binary file encoded with \f[B]uuencode\f[](1) \&.vf TeX virtual font file \&.vpl TeX virtual property list file \&.w Silvio Levi's CWEB @@ -256,17 +256,17 @@ T} \&.xpm X11 pixmap source \&.xs Perl xsub file produced by h2xs \&.xsl XSL stylesheet -\&.y \fByacc\fP(1) or \fBbison\fP(1) (parser generator) files +\&.y \f[B]yacc\f[](1) or \f[B]bison\f[](1) (parser generator) files \&.z T{ File compressed using .BR pack (1) (or an old .BR gzip (1)) T} -\&.zip \fBzip\fP(1) archive -\&.zoo \fBzoo\fP(1) archive -\&\[ti] Emacs or \fBpatch\fP(1) backup file -\&rc startup (`run control') file, e.g., \fI.newsrc\fP +\&.zip \f[B]zip\f[](1) archive +\&.zoo \f[B]zoo\f[](1) archive +\&\[ti] Emacs or \f[B]patch\f[](1) backup file +\&rc startup (`run control') file, e.g., \f[I].newsrc\f[] .TE .SH STANDARDS General UNIX conventions. diff --git a/man/man7/symlink.7 b/man/man7/symlink.7 index 5aaaee5989..4d1d777f1b 100644 --- a/man/man7/symlink.7 +++ b/man/man7/symlink.7 @@ -397,8 +397,9 @@ It is important to realize that the following rules apply equally to symbolic links encountered during the file tree traversal and symbolic links listed as command-line arguments. .P -The \fIfirst rule\fP applies to symbolic links that reference files other -than directories. +The +.I first rule +applies to symbolic links that reference files other than directories. Operations that apply to symbolic links are performed on the links themselves, but otherwise the links are ignored. .P @@ -414,7 +415,9 @@ In no case will affect the file referred to by .IR slink . .P -The \fIsecond rule\fP applies to symbolic links that refer to directories. +The +.I second rule +applies to symbolic links that refer to directories. Symbolic links that refer to directories are never followed by default. This is often referred to as a "physical" walk, as opposed to a "logical" walk (where symbolic links that refer to directories are followed). diff --git a/man/man7/tcp.7 b/man/man7/tcp.7 index c7b393c105..1791c33852 100644 --- a/man/man7/tcp.7 +++ b/man/man7/tcp.7 @@ -363,7 +363,9 @@ but not loaded. This variable defines how many bytes of the TCP window are reserved for buffering overhead. .IP -A maximum of (\fIwindow/2\[ha]tcp_app_win\fP, mss) bytes in the window +A maximum of +.RI ( window/2\[ha]tcp_app_win , +mss) bytes in the window are reserved for the application buffer. A value of 0 implies that no amount is reserved. .\" @@ -822,7 +824,7 @@ The default value is calculated using the formula .IP .in +4n .EX -max(87380, min(4\ MB, \fItcp_mem\fP[1]*PAGE_SIZE/128)) +.RI "max(87380, min(4\ MB, " tcp_mem [1]*PAGE_SIZE/128)) .EE .in .IP @@ -1037,7 +1039,7 @@ The default value is calculated using the formula .IP .in +4n .EX -max(65536, min(4\ MB, \fItcp_mem\fP[1]*PAGE_SIZE/128)) +.RI "max(65536, min(4\ MB, " tcp_mem [1]*PAGE_SIZE/128)) .EE .in .IP @@ -1119,7 +1121,9 @@ This option should not be used in code intended to be portable. .TP .BR TCP_INFO " (since Linux 2.4)" Used to collect information about this socket. -The kernel returns a \fIstruct tcp_info\fP as defined in the file +The kernel returns a +.I struct tcp_info +as defined in the file .IR /usr/include/linux/tcp.h . This option should not be used in code intended to be portable. .TP diff --git a/man/man7/thread-keyring.7 b/man/man7/thread-keyring.7 index 0a04f93122..d5ab2df0fd 100644 --- a/man/man7/thread-keyring.7 +++ b/man/man7/thread-keyring.7 @@ -19,7 +19,9 @@ the calling thread's thread keyring. .P From the .BR keyctl (1) -utility, '\fB@t\fP' can be used instead of a numeric key ID in +utility, +.RB ' @t ' +can be used instead of a numeric key ID in much the same way, but as .BR keyctl (1) is a program run after forking, this is of no utility. diff --git a/man/man7/time_namespaces.7 b/man/man7/time_namespaces.7 index 8a2817be56..2dea4c058c 100644 --- a/man/man7/time_namespaces.7 +++ b/man/man7/time_namespaces.7 @@ -56,7 +56,7 @@ this symbolic link in a call to .BR setns (2) in order to move into the namespace.) .\" -.SS \fI/proc/\fPpid\fI/timens_offsets\fP +.SS \f[I]/proc/\f[]pid\f[I]/timens_offsets\f[] Associated with each time namespace are offsets, expressed with respect to the initial time namespace, that define the values of the monotonic and @@ -100,7 +100,7 @@ file are as follows: .P .in +4n .EX -$ \fBcat /proc/self/timens_offsets\fP +.RB $ " cat /proc/self/timens_offsets" monotonic 0 0 boottime 0 0 .EE @@ -196,7 +196,7 @@ of a shell in the initial time namespace: .P .in +4n .EX -$ \fBreadlink /proc/$$/ns/time\fP +.RB $ " readlink /proc/$$/ns/time" time:[4026531834] .EE .in @@ -211,9 +211,9 @@ to display the values of various clocks: .P .in +4n .EX -$ \fBuptime \-\-pretty\fP +.RB $ " uptime \-\-pretty" up 21 hours, 17 minutes -$ \fB./clock_times\fP +.RB $ " ./clock_times" CLOCK_REALTIME : 1585989401.971 (18356 days + 8h 36m 41s) CLOCK_TAI : 1585989438.972 (18356 days + 8h 37m 18s) CLOCK_MONOTONIC: 56338.247 (15h 38m 58s) @@ -239,9 +239,9 @@ clock forward 7 days: .P .in +4n .EX -$ \fBPS1="ns2# " sudo unshare \-T \-\- bash \-\-norc\fP -ns2# \fBecho "monotonic $((2*24*60*60)) 0" > /proc/$$/timens_offsets\fP -ns2# \fBecho "boottime $((7*24*60*60)) 0" > /proc/$$/timens_offsets\fP +.RB $ " PS1="ns2# " sudo unshare \-T \-\- bash \-\-norc" +.RB ns2# " echo "monotonic $((2*24*60*60)) 0" > /proc/$$/timens_offsets" +.RB ns2# " echo "boottime $((7*24*60*60)) 0" > /proc/$$/timens_offsets" .EE .in .P @@ -269,10 +269,10 @@ file produce an error. .P .in +4n .EX -ns2# \fBcat /proc/$$/timens_offsets\fP +.RB ns2# " cat /proc/$$/timens_offsets" monotonic 172800 0 boottime 604800 0 -ns2# \fBecho "boottime $((9*24*60*60)) 0" > /proc/$$/timens_offsets\fP +.RB ns2# " echo \[dq]boottime $((9*24*60*60)) 0\[dq] > /proc/$$/timens_offsets" bash: echo: write error: Permission denied .EE .in @@ -285,9 +285,9 @@ example program: .P .in +4n .EX -ns2# \fBuptime \-\-pretty\fP +.RB ns2# " uptime \-\-pretty" up 1 week, 21 hours, 18 minutes -ns2# \fB./clock_times\fP +.RB ns2# " ./clock_times" CLOCK_REALTIME : 1585989457.056 (18356 days + 8h 37m 37s) CLOCK_TAI : 1585989494.057 (18356 days + 8h 38m 14s) CLOCK_MONOTONIC: 229193.332 (2 days + 15h 39m 53s) @@ -307,11 +307,11 @@ namespace, but its children are created in the new namespace. .P .in +4n .EX -ns2# \fBreadlink /proc/$$/ns/time\fP +.RB ns2# " readlink /proc/$$/ns/time" time:[4026531834] -ns2# \fBreadlink /proc/$$/ns/time_for_children\fP +.RB ns2# " readlink /proc/$$/ns/time_for_children" time:[4026532900] -ns2# \fBreadlink /proc/self/ns/time\fP # Creates a child process +.RB ns2# " readlink /proc/self/ns/time" " # Creates a child process" time:[4026532900] .EE .in @@ -324,9 +324,9 @@ changes that were made in the other time namespace: .P .in +4n .EX -$ \fBuptime \-\-pretty\fP +.RB $ " uptime \-\-pretty" up 21 hours, 19 minutes -$ \fB./clock_times\fP +.RB $ " ./clock_times" CLOCK_REALTIME : 1585989401.971 (18356 days + 8h 38m 51s) CLOCK_TAI : 1585989438.972 (18356 days + 8h 39m 28s) CLOCK_MONOTONIC: 56338.247 (15h 41m 8s) diff --git a/man/man7/unix.7 b/man/man7/unix.7 index f291508bfb..6a6248bac7 100644 --- a/man/man7/unix.7 +++ b/man/man7/unix.7 @@ -941,13 +941,13 @@ Execution of the server program ends when it receives the "DOWN" command. .SS Example output .in +4n .EX -$ \fB./server &\fP +.RB $ " ./server &" [1] 25887 -$ \fB./client 3 4\fP +.RB $ " ./client 3 4" ; Result = 7 -$ \fB./client 11 \-5\fP +.RB $ " ./client 11 \-5" ; Result = 6 -$ \fB./client DOWN\fP +.RB $ " ./client DOWN" ; Result = 0 [1]+ Done ./server $ diff --git a/man/man7/uri.7 b/man/man7/uri.7 index d76f3fc051..c24de1a975 100644 --- a/man/man7/uri.7 +++ b/man/man7/uri.7 @@ -29,7 +29,7 @@ .SH NAME uri, url, urn \- uniform resource identifier (URI), including a URL or URN .SH SYNOPSIS -.SY "\fIURI\fP \fR=\fP" +.SY \f[I]URI\f[]\~\f[R]=\f[] .RI [\~ absoluteURI | .IR relativeURI \~] @@ -37,7 +37,7 @@ uri, url, urn \- uniform resource identifier (URI), including a URL or URN .IR fragment \~] .YS .P -.SY "\fIabsoluteURI\fP \fR=\fP" +.SY \f[I]absoluteURI\f[]\~\f[R]=\f[] .I scheme\~\c .RB \[dq] : \[dq] .RI (\~ hierarchical_part @@ -45,7 +45,7 @@ uri, url, urn \- uniform resource identifier (URI), including a URL or URN .IR opaque_part \~) .YS .P -.SY "\fIrelativeURI\fP \fR=\fP" +.SY \f[I]relativeURI\f[]\~\f[R]=\f[] .RI (\~ net_path | .I absolute_path @@ -55,7 +55,7 @@ uri, url, urn \- uniform resource identifier (URI), including a URL or URN .IR query \~] .YS .P -.SY "\fIscheme\fP \fR=\fP" +.SY \f[I]scheme\f[]\~\f[R]=\f[] .RB \[dq] http \[dq] | .RB \[dq] ftp \[dq] @@ -84,7 +84,7 @@ uri, url, urn \- uniform resource identifier (URI), including a URL or URN | \&... .YS .P -.SY "\fIhierarchical_part\fP \fR=\fP" +.SY \f[I]hierarchical_part\f[]\~\f[R]=\f[] .RI (\~ net_path | .IR absolute_path \~) @@ -92,18 +92,18 @@ uri, url, urn \- uniform resource identifier (URI), including a URL or URN .IR query \~] .YS .P -.SY "\fInet_path\fP \fR=\fP" +.SY \f[I]net_path\f[]\~\f[R]=\f[] .RB \[dq] // \[dq]\~\c .I authority .RI [\~ absolute_path \~] .YS .P -.SY "\fIabsolute_path\fP \fR=\fP" +.SY \f[I]absolute_path\f[]\~\f[R]=\f[] .RB \[dq] / \[dq]\~\c .I path_segments .YS .P -.SY "\fIrelative_path\fP \fR=\fP" +.SY \f[I]relative_path\f[]\~\f[R]=\f[] .I relative_segment .RI [\~ absolute_path \~] .YS @@ -649,10 +649,12 @@ Technically the fragment isn't part of the URI. .P For information on how to embed URIs (including URLs) in a data format, see documentation on that format. -HTML uses the format <A HREF="\fIuri\fP"> +HTML uses the format +.RI "<A\ HREF=\[dq]" uri \[dq]> .I text </A>. -Texinfo files use the format @uref{\fIuri\fP}. +Texinfo files use the format +.RI @uref{ uri }. Man and mdoc have the recently added UR macro, or just include the URI in the text (viewers should be able to detect :// as part of a URI). .P diff --git a/man/man7/user-keyring.7 b/man/man7/user-keyring.7 index 77c4bb0a9d..e4d3549aae 100644 --- a/man/man7/user-keyring.7 +++ b/man/man7/user-keyring.7 @@ -46,7 +46,9 @@ the calling process's user keyring. .P From the .BR keyctl (1) -utility, '\fB@u\fP' can be used instead of a numeric key ID in +utility, +.RB ' @u ' +can be used instead of a numeric key ID in much the same way. .P User keyrings are independent of diff --git a/man/man7/user-session-keyring.7 b/man/man7/user-session-keyring.7 index d7b633299c..87892d240b 100644 --- a/man/man7/user-session-keyring.7 +++ b/man/man7/user-session-keyring.7 @@ -49,8 +49,9 @@ the calling process's user session keyring. .P From the .BR keyctl (1) -utility, '\fB@us\fP' can be used instead of a numeric key ID in -much the same way. +utility, +.RB ' @us ' +can be used instead of a numeric key ID in much the same way. .P User session keyrings are independent of .BR clone (2), diff --git a/man/man7/user_namespaces.7 b/man/man7/user_namespaces.7 index eec29c2434..7771faca8e 100644 --- a/man/man7/user_namespaces.7 +++ b/man/man7/user_namespaces.7 @@ -476,7 +476,7 @@ is the same) from a shell in the initial namespace shows: .P .in +4n .EX -$ \fBcat /proc/$$/uid_map\fP +.RB $ " cat /proc/$$/uid_map" ; 0 0 4294967295 .EE .in @@ -758,7 +758,7 @@ capability in the parent user namespace. .\" .\" ============================================================ .\" -.SS The \fI/proc/\fPpid\fI/setgroups\fP file +.SS The \f[I]/proc/\f[]pid\f[I]/setgroups\f[] file .\" .\" commit 9cc46516ddf497ea16e8d7cb986ae03a0f6b92f8 .\" commit 66d2f338ee4c449396b6f99f5e75cd18eb6df272 @@ -1083,11 +1083,11 @@ First, we look at the run-time environment: .P .in +4n .EX -$ \fBuname \-rs\fP # Need Linux 3.8 or later +.RB $ " uname \-rs" "; # Need Linux 3.8 or later" Linux 3.8.0 -$ \fBid \-u\fP # Running as unprivileged user +.RB $ " id \-u" "; # Running as unprivileged user" 1000 -$ \fBid \-g\fP +.RB $ " id \-g" ; 1000 .EE .in @@ -1106,7 +1106,7 @@ and group ID .P .in +4n .EX -$ \fB./userns_child_exec \-p \-m \-U \-M \[aq]0 1000 1\[aq] \-G \[aq]0 1000 1\[aq] bash\fP +.RB $ " ./userns_child_exec \-p \-m \-U \-M \[aq]0 1000 1\[aq] \-G \[aq]0 1000 1\[aq] bash" ; .EE .in .P @@ -1115,7 +1115,7 @@ PID namespace: .P .in +4n .EX -bash$ \fBecho $$\fP +.RB bash$ " echo $$" ; 1 .EE .in @@ -1128,8 +1128,8 @@ any processes outside the PID namespace: .P .in +4n .EX -bash$ \fBmount \-t proc proc /proc\fP -bash$ \fBps ax\fP +.RB bash$ " mount \-t proc proc /proc" ; +.RB bash$ " ps ax" ; PID TTY STAT TIME COMMAND 1 pts/3 S 0:00 bash 22 pts/3 R+ 0:00 ps ax @@ -1141,10 +1141,10 @@ and a full set of permitted and effective capabilities: .P .in +4n .EX -bash$ \fBcat /proc/$$/status | egrep \[aq]\[ha][UG]id\[aq]\fP +.RB bash$ " cat /proc/$$/status | egrep \[aq]\[ha][UG]id\[aq]" ; Uid: 0 0 0 0 Gid: 0 0 0 0 -bash$ \fBcat /proc/$$/status | egrep \[aq]\[ha]Cap(Prm|Inh|Eff)\[aq]\fP +.RB bash$ " cat /proc/$$/status | egrep \[aq]\[ha]Cap(Prm|Inh|Eff)\[aq]" ; CapInh: 0000000000000000 CapPrm: 0000001fffffffff CapEff: 0000001fffffffff diff --git a/man/man7/vdso.7 b/man/man7/vdso.7 index de5f300cd2..878ad8b640 100644 --- a/man/man7/vdso.7 +++ b/man/man7/vdso.7 @@ -383,7 +383,7 @@ __kernel_clock_gettime64 LINUX_5.11 __kernel_datapage_offset LINUX_2.6.15 __kernel_get_syscall_map LINUX_2.6.15 __kernel_get_tbfreq LINUX_2.6.15 -__kernel_getcpu \fI*\fR LINUX_2.6.15 +__kernel_getcpu \f[I]*\f[] LINUX_2.6.15 __kernel_gettimeofday LINUX_2.6.15 __kernel_sigtramp_rt32 LINUX_2.6.15 __kernel_sigtramp32 LINUX_2.6.15 |
