mirror of https://github.com/mkerrisk/man-pages
Various pages: Inside code blocks (.EX/.EE) use \- to get real minus signs
A real minus can be cut and pasted... THere are a few exceptions that gave been excluded in the this change. For example, where there' is a string such as "<p1-name>", where p1-name is soome sort of pseudo-identifier. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
d5de9d1dc5
commit
d064d41a4b
|
@ -31,13 +31,13 @@ is the following:
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
$ \fBldd /bin/ls | sed \(aqs/^ */ /\(aq\fP
|
$ \fBldd /bin/ls | sed \(aqs/^ */ /\(aq\fP
|
||||||
linux-vdso.so.1 (0x00007ffcc3563000)
|
linux\-vdso.so.1 (0x00007ffcc3563000)
|
||||||
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000)
|
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000)
|
||||||
libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000)
|
libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000)
|
||||||
libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000)
|
libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000)
|
||||||
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000)
|
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000)
|
||||||
libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000)
|
libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000)
|
||||||
/lib64/ld-linux-x86-64.so.2 (0x00005574bf12e000)
|
/lib64/ld\-linux\-x86\-64.so.2 (0x00005574bf12e000)
|
||||||
libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000)
|
libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000)
|
||||||
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000)
|
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000)
|
||||||
.EE
|
.EE
|
||||||
|
|
|
@ -196,10 +196,10 @@ subsequent user sessions:
|
||||||
.PP
|
.PP
|
||||||
.EX
|
.EX
|
||||||
$ \fBmkdir \-p $HOME/.locale\fP
|
$ \fBmkdir \-p $HOME/.locale\fP
|
||||||
$ \fBI18NPATH=./wrk/ localedef \-f UTF-8 \-i fi_SE $HOME/.locale/fi_SE.UTF-8\fP
|
$ \fBI18NPATH=./wrk/ localedef \-f UTF\-8 \-i fi_SE $HOME/.locale/fi_SE.UTF\-8\fP
|
||||||
$ \fBLOCPATH=$HOME/.locale LC_ALL=fi_SE.UTF-8 date\fP
|
$ \fBLOCPATH=$HOME/.locale LC_ALL=fi_SE.UTF\-8 date\fP
|
||||||
$ \fBecho "export LOCPATH=\e$HOME/.locale" >> $HOME/.bashrc\fP
|
$ \fBecho "export LOCPATH=\e$HOME/.locale" >> $HOME/.bashrc\fP
|
||||||
$ \fBecho "export LANG=fi_SE.UTF-8" >> $HOME/.bashrc\fP
|
$ \fBecho "export LANG=fi_SE.UTF\-8" >> $HOME/.bashrc\fP
|
||||||
.EE
|
.EE
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.BR localedef (1),
|
.BR localedef (1),
|
||||||
|
|
|
@ -260,7 +260,7 @@ main(int argc, char *argv[])
|
||||||
if (i < CYCLES / 2)
|
if (i < CYCLES / 2)
|
||||||
j = i;
|
j = i;
|
||||||
else
|
else
|
||||||
j--;
|
j\-\-;
|
||||||
|
|
||||||
size = sizeof(*p) * (j * 50 + 110);
|
size = sizeof(*p) * (j * 50 + 110);
|
||||||
printf("realloc: %zu\en", size);
|
printf("realloc: %zu\en", size);
|
||||||
|
|
|
@ -233,7 +233,7 @@ The following shell session demonstrates the use of the program:
|
||||||
$ \fB./a.out user mykey "Some payload"\fP
|
$ \fB./a.out user mykey "Some payload"\fP
|
||||||
Key ID is 64a4dca
|
Key ID is 64a4dca
|
||||||
$ \fBgrep \(aq64a4dca\(aq /proc/keys\fP
|
$ \fBgrep \(aq64a4dca\(aq /proc/keys\fP
|
||||||
064a4dca I--Q--- 1 perm 3f010000 1000 1000 user mykey: 12
|
064a4dca I\-\-Q\-\-\- 1 perm 3f010000 1000 1000 user mykey: 12
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.SS Program source
|
.SS Program source
|
||||||
|
|
|
@ -61,36 +61,36 @@ struct timex {
|
||||||
long maxerror; /* Maximum error (microseconds) */
|
long maxerror; /* Maximum error (microseconds) */
|
||||||
long esterror; /* Estimated error (microseconds) */
|
long esterror; /* Estimated error (microseconds) */
|
||||||
int status; /* Clock command/status */
|
int status; /* Clock command/status */
|
||||||
long constant; /* PLL (phase-locked loop) time constant */
|
long constant; /* PLL (phase\-locked loop) time constant */
|
||||||
long precision; /* Clock precision
|
long precision; /* Clock precision
|
||||||
(microseconds, read-only) */
|
(microseconds, read\-only) */
|
||||||
long tolerance; /* Clock frequency tolerance (read-only);
|
long tolerance; /* Clock frequency tolerance (read\-only);
|
||||||
see NOTES for units */
|
see NOTES for units */
|
||||||
struct timeval time;
|
struct timeval time;
|
||||||
/* Current time (read-only, except for
|
/* Current time (read\-only, except for
|
||||||
ADJ_SETOFFSET); upon return, time.tv_usec
|
ADJ_SETOFFSET); upon return, time.tv_usec
|
||||||
contains nanoseconds, if STA_NANO status
|
contains nanoseconds, if STA_NANO status
|
||||||
flag is set, otherwise microseconds */
|
flag is set, otherwise microseconds */
|
||||||
long tick; /* Microseconds between clock ticks */
|
long tick; /* Microseconds between clock ticks */
|
||||||
long ppsfreq; /* PPS (pulse per second) frequency
|
long ppsfreq; /* PPS (pulse per second) frequency
|
||||||
(read-only); see NOTES for units */
|
(read\-only); see NOTES for units */
|
||||||
long jitter; /* PPS jitter (read-only); nanoseconds, if
|
long jitter; /* PPS jitter (read\-only); nanoseconds, if
|
||||||
STA_NANO status flag is set, otherwise
|
STA_NANO status flag is set, otherwise
|
||||||
microseconds */
|
microseconds */
|
||||||
int shift; /* PPS interval duration
|
int shift; /* PPS interval duration
|
||||||
(seconds, read-only) */
|
(seconds, read\-only) */
|
||||||
long stabil; /* PPS stability (read-only);
|
long stabil; /* PPS stability (read\-only);
|
||||||
see NOTES for units */
|
see NOTES for units */
|
||||||
long jitcnt; /* PPS count of jitter limit exceeded
|
long jitcnt; /* PPS count of jitter limit exceeded
|
||||||
events (read-only) */
|
events (read\-only) */
|
||||||
long calcnt; /* PPS count of calibration intervals
|
long calcnt; /* PPS count of calibration intervals
|
||||||
(read-only) */
|
(read\-only) */
|
||||||
long errcnt; /* PPS count of calibration errors
|
long errcnt; /* PPS count of calibration errors
|
||||||
(read-only) */
|
(read\-only) */
|
||||||
long stbcnt; /* PPS count of stability limit exceeded
|
long stbcnt; /* PPS count of stability limit exceeded
|
||||||
events (read-only) */
|
events (read\-only) */
|
||||||
int tai; /* TAI offset, as set by previous ADJ_TAI
|
int tai; /* TAI offset, as set by previous ADJ_TAI
|
||||||
operation (seconds, read-only,
|
operation (seconds, read\-only,
|
||||||
since Linux 2.6.26) */
|
since Linux 2.6.26) */
|
||||||
/* Further padding bytes to allow for future expansion */
|
/* Further padding bytes to allow for future expansion */
|
||||||
};
|
};
|
||||||
|
@ -177,7 +177,7 @@ with nanosecond resolution.
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
while (buf.time.tv_usec < 0) {
|
while (buf.time.tv_usec < 0) {
|
||||||
buf.time.tv_sec -= 1;
|
buf.time.tv_sec \-= 1;
|
||||||
buf.time.tv_usec += 1000000000;
|
buf.time.tv_usec += 1000000000;
|
||||||
}
|
}
|
||||||
.EE
|
.EE
|
||||||
|
|
18
man2/bpf.2
18
man2/bpf.2
|
@ -123,11 +123,11 @@ tracing tracing tracing packet packet packet
|
||||||
event A event B event C on eth0 on eth1 on eth2
|
event A event B event C on eth0 on eth1 on eth2
|
||||||
| | | | | \(ha
|
| | | | | \(ha
|
||||||
| | | | v |
|
| | | | v |
|
||||||
--> tracing <-- tracing socket tc ingress tc egress
|
\-\-> tracing <\-\- tracing socket tc ingress tc egress
|
||||||
prog_1 prog_2 prog_3 classifier action
|
prog_1 prog_2 prog_3 classifier action
|
||||||
| | | | prog_4 prog_5
|
| | | | prog_4 prog_5
|
||||||
|--- -----| |------| map_3 | |
|
|\-\-\- \-\-\-\-\-| |\-\-\-\-\-\-| map_3 | |
|
||||||
map_1 map_2 --| map_4 |--
|
map_1 map_2 \-\-| map_4 |\-\-
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.\"
|
.\"
|
||||||
|
@ -307,7 +307,7 @@ of 8 and the eBPF program calls
|
||||||
.IP
|
.IP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
bpf_map_lookup_elem(map_fd, fp - 4)
|
bpf_map_lookup_elem(map_fd, fp \- 4)
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.IP
|
.IP
|
||||||
|
@ -1206,7 +1206,7 @@ riscv (since Linux 5.1).
|
||||||
/* bpf+sockets example:
|
/* bpf+sockets example:
|
||||||
* 1. create array map of 256 elements
|
* 1. create array map of 256 elements
|
||||||
* 2. load program that counts number of packets received
|
* 2. load program that counts number of packets received
|
||||||
* r0 = skb->data[ETH_HLEN + offsetof(struct iphdr, protocol)]
|
* r0 = skb\->data[ETH_HLEN + offsetof(struct iphdr, protocol)]
|
||||||
* map[r0]++
|
* map[r0]++
|
||||||
* 3. attach prog_fd to raw socket via setsockopt()
|
* 3. attach prog_fd to raw socket via setsockopt()
|
||||||
* 4. print number of received TCP/UDP packets every second
|
* 4. print number of received TCP/UDP packets every second
|
||||||
|
@ -1228,11 +1228,11 @@ main(int argc, char **argv)
|
||||||
struct bpf_insn prog[] = {
|
struct bpf_insn prog[] = {
|
||||||
BPF_MOV64_REG(BPF_REG_6, BPF_REG_1), /* r6 = r1 */
|
BPF_MOV64_REG(BPF_REG_6, BPF_REG_1), /* r6 = r1 */
|
||||||
BPF_LD_ABS(BPF_B, ETH_HLEN + offsetof(struct iphdr, protocol)),
|
BPF_LD_ABS(BPF_B, ETH_HLEN + offsetof(struct iphdr, protocol)),
|
||||||
/* r0 = ip->proto */
|
/* r0 = ip\->proto */
|
||||||
BPF_STX_MEM(BPF_W, BPF_REG_10, BPF_REG_0, -4),
|
BPF_STX_MEM(BPF_W, BPF_REG_10, BPF_REG_0, \-4),
|
||||||
/* *(u32 *)(fp - 4) = r0 */
|
/* *(u32 *)(fp \- 4) = r0 */
|
||||||
BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), /* r2 = fp */
|
BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), /* r2 = fp */
|
||||||
BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -4), /* r2 = r2 - 4 */
|
BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, \-4), /* r2 = r2 \- 4 */
|
||||||
BPF_LD_MAP_FD(BPF_REG_1, map_fd), /* r1 = map_fd */
|
BPF_LD_MAP_FD(BPF_REG_1, map_fd), /* r1 = map_fd */
|
||||||
BPF_CALL_FUNC(BPF_FUNC_map_lookup_elem),
|
BPF_CALL_FUNC(BPF_FUNC_map_lookup_elem),
|
||||||
/* r0 = map_lookup(r1, r2) */
|
/* r0 = map_lookup(r1, r2) */
|
||||||
|
|
|
@ -500,7 +500,7 @@ events for both the ELF binary and interpreter, respectively:
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
/bin/echo
|
/bin/echo
|
||||||
/lib64/ld-linux-x86-64.so.2
|
/lib64/ld\-linux\-x86\-64.so.2
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
|
|
|
@ -76,7 +76,7 @@ struct linux_dirent {
|
||||||
unsigned long d_ino; /* Inode number */
|
unsigned long d_ino; /* Inode number */
|
||||||
unsigned long d_off; /* Offset to next \fIlinux_dirent\fP */
|
unsigned long d_off; /* Offset to next \fIlinux_dirent\fP */
|
||||||
unsigned short d_reclen; /* Length of this \fIlinux_dirent\fP */
|
unsigned short d_reclen; /* Length of this \fIlinux_dirent\fP */
|
||||||
char d_name[]; /* Filename (null-terminated) */
|
char d_name[]; /* Filename (null\-terminated) */
|
||||||
/* length is actually (d_reclen \- 2 \-
|
/* length is actually (d_reclen \- 2 \-
|
||||||
offsetof(struct linux_dirent, d_name)) */
|
offsetof(struct linux_dirent, d_name)) */
|
||||||
/*
|
/*
|
||||||
|
@ -173,11 +173,11 @@ structures of the following type:
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
struct linux_dirent64 {
|
struct linux_dirent64 {
|
||||||
ino64_t d_ino; /* 64-bit inode number */
|
ino64_t d_ino; /* 64\-bit inode number */
|
||||||
off64_t d_off; /* 64-bit offset to next structure */
|
off64_t d_off; /* 64\-bit offset to next structure */
|
||||||
unsigned short d_reclen; /* Size of this dirent */
|
unsigned short d_reclen; /* Size of this dirent */
|
||||||
unsigned char d_type; /* File type */
|
unsigned char d_type; /* File type */
|
||||||
char d_name[]; /* Filename (null-terminated) */
|
char d_name[]; /* Filename (null\-terminated) */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
|
@ -242,7 +242,7 @@ program on an ext2 directory:
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
.RB "$" " ./a.out /testfs/"
|
.RB "$" " ./a.out /testfs/"
|
||||||
--------------- nread=120 ---------------
|
-\-\-\-\-\-\-\-\-\-\-\-\-\-\- nread=120 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
||||||
inode# file type d_reclen d_off d_name
|
inode# file type d_reclen d_off d_name
|
||||||
2 directory 16 12 .
|
2 directory 16 12 .
|
||||||
2 directory 16 24 ..
|
2 directory 16 24 ..
|
||||||
|
|
|
@ -308,7 +308,7 @@ The actual ceiling for the nice value is calculated as
|
||||||
.IR "20\ \-\ rlim_cur" .
|
.IR "20\ \-\ rlim_cur" .
|
||||||
The useful range for this limit is thus from 1
|
The useful range for this limit is thus from 1
|
||||||
(corresponding to a nice value of 19) to 40
|
(corresponding to a nice value of 19) to 40
|
||||||
(corresponding to a nice value of -20).
|
(corresponding to a nice value of \-20).
|
||||||
This unusual choice of range was necessary
|
This unusual choice of range was necessary
|
||||||
because negative numbers cannot be specified
|
because negative numbers cannot be specified
|
||||||
as resource limit values, since they typically have special meanings.
|
as resource limit values, since they typically have special meanings.
|
||||||
|
|
|
@ -68,9 +68,9 @@ The unwind table contains entries of the following form:
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
u64 start; (64-bit address of start of function)
|
u64 start; (64\-bit address of start of function)
|
||||||
u64 end; (64-bit address of end of function)
|
u64 end; (64\-bit address of end of function)
|
||||||
u64 info; (BUF-relative offset to unwind info)
|
u64 info; (BUF\-relative offset to unwind info)
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -111,7 +111,7 @@ Typically the volume ID is displayed to the user as a group of two
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
printf("Volume ID %04x-%04x\en", id >> 16, id & 0xFFFF);
|
printf("Volume ID %04x\-%04x\en", id >> 16, id & 0xFFFF);
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.SS Reading short filenames of a directory
|
.SS Reading short filenames of a directory
|
||||||
|
@ -359,7 +359,7 @@ directory
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
$ ./display_fat_volume_id /mnt/user
|
$ ./display_fat_volume_id /mnt/user
|
||||||
Volume ID 6443-6241
|
Volume ID 6443\-6241
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.SS Program source (display_fat_volume_id.c)
|
.SS Program source (display_fat_volume_id.c)
|
||||||
|
@ -422,11 +422,11 @@ The following was recorded when applying the program to the directory
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
$ \fB./fat_dir /mnt/user\fP
|
$ \fB./fat_dir /mnt/user\fP
|
||||||
\[char46] -> \(aq\(aq
|
\[char46] \-> \(aq\(aq
|
||||||
\[char46]. -> \(aq\(aq
|
\[char46]. \-> \(aq\(aq
|
||||||
ALONGF\(ti1.TXT -> \(aqa long filename.txt\(aq
|
ALONGF\(ti1.TXT \-> \(aqa long filename.txt\(aq
|
||||||
UPPER.TXT -> \(aq\(aq
|
UPPER.TXT \-> \(aq\(aq
|
||||||
LOWER.TXT -> \(aqlower.txt\(aq
|
LOWER.TXT \-> \(aqlower.txt\(aq
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.\"
|
.\"
|
||||||
|
|
|
@ -1496,7 +1496,7 @@ parameters of the KDF operation to be applied:
|
||||||
.EX
|
.EX
|
||||||
struct keyctl_kdf_params {
|
struct keyctl_kdf_params {
|
||||||
char *hashname; /* Hash algorithm name */
|
char *hashname; /* Hash algorithm name */
|
||||||
char *otherinfo; /* SP800-56A OtherInfo */
|
char *otherinfo; /* SP800\-56A OtherInfo */
|
||||||
__u32 otherinfolen; /* Length of otherinfo data */
|
__u32 otherinfolen; /* Length of otherinfo data */
|
||||||
__u32 __spare[8]; /* Reserved */
|
__u32 __spare[8]; /* Reserved */
|
||||||
};
|
};
|
||||||
|
@ -2016,7 +2016,7 @@ $ \fBcat /tmp/key_instantiate.log\fP
|
||||||
Time: Mon Nov 7 13:06:47 2016
|
Time: Mon Nov 7 13:06:47 2016
|
||||||
|
|
||||||
Command line arguments:
|
Command line arguments:
|
||||||
argv[0]: /sbin/request-key
|
argv[0]: /sbin/request\-key
|
||||||
operation: create
|
operation: create
|
||||||
key_to_instantiate: 20d035bf
|
key_to_instantiate: 20d035bf
|
||||||
UID: 1000
|
UID: 1000
|
||||||
|
|
|
@ -322,7 +322,7 @@ handler(int sig, siginfo_t *si, void *unused)
|
||||||
{
|
{
|
||||||
/* Note: calling printf() from a signal handler is not safe
|
/* Note: calling printf() from a signal handler is not safe
|
||||||
(and should not be done in production programs), since
|
(and should not be done in production programs), since
|
||||||
printf() is not async\-signal\-safe; see signal-safety(7).
|
printf() is not async\-signal\-safe; see signal\-safety(7).
|
||||||
Nevertheless, we use printf() here as a simple way of
|
Nevertheless, we use printf() here as a simple way of
|
||||||
showing that the handler was called. */
|
showing that the handler was called. */
|
||||||
|
|
||||||
|
|
|
@ -208,7 +208,7 @@ for the event being created.
|
||||||
struct perf_event_attr {
|
struct perf_event_attr {
|
||||||
__u32 type; /* Type of event */
|
__u32 type; /* Type of event */
|
||||||
__u32 size; /* Size of attribute structure */
|
__u32 size; /* Size of attribute structure */
|
||||||
__u64 config; /* Type-specific configuration */
|
__u64 config; /* Type\-specific configuration */
|
||||||
|
|
||||||
union {
|
union {
|
||||||
__u64 sample_period; /* Period of sampling */
|
__u64 sample_period; /* Period of sampling */
|
||||||
|
@ -234,7 +234,7 @@ struct perf_event_attr {
|
||||||
task : 1, /* trace fork/exit */
|
task : 1, /* trace fork/exit */
|
||||||
watermark : 1, /* wakeup_watermark */
|
watermark : 1, /* wakeup_watermark */
|
||||||
precise_ip : 2, /* skid constraint */
|
precise_ip : 2, /* skid constraint */
|
||||||
mmap_data : 1, /* non-exec mmap data */
|
mmap_data : 1, /* non\-exec mmap data */
|
||||||
sample_id_all : 1, /* sample_type all events */
|
sample_id_all : 1, /* sample_type all events */
|
||||||
exclude_host : 1, /* don\(aqt count in host */
|
exclude_host : 1, /* don\(aqt count in host */
|
||||||
exclude_guest : 1, /* don\(aqt count in guest */
|
exclude_guest : 1, /* don\(aqt count in guest */
|
||||||
|
@ -1606,7 +1606,7 @@ struct perf_event_mmap_page {
|
||||||
__u64 time_offset;
|
__u64 time_offset;
|
||||||
__u64 __reserved[120]; /* Pad to 1 k */
|
__u64 __reserved[120]; /* Pad to 1 k */
|
||||||
__u64 data_head; /* head in the data section */
|
__u64 data_head; /* head in the data section */
|
||||||
__u64 data_tail; /* user-space written tail */
|
__u64 data_tail; /* user\-space written tail */
|
||||||
__u64 data_offset; /* where the buffer starts */
|
__u64 data_offset; /* where the buffer starts */
|
||||||
__u64 data_size; /* data buffer size */
|
__u64 data_size; /* data buffer size */
|
||||||
__u64 aux_head;
|
__u64 aux_head;
|
||||||
|
@ -1807,7 +1807,7 @@ values:
|
||||||
.IP
|
.IP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
time = timestamp - time_zero;
|
time = timestamp \- time_zero;
|
||||||
quot = time / time_mult;
|
quot = time / time_mult;
|
||||||
rem = time % time_mult;
|
rem = time % time_mult;
|
||||||
cyc = (quot << time_shift) + (rem << time_shift) / time_mult;
|
cyc = (quot << time_shift) + (rem << time_shift) / time_mult;
|
||||||
|
@ -1819,7 +1819,7 @@ And vice versa:
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
quot = cyc >> time_shift;
|
quot = cyc >> time_shift;
|
||||||
rem = cyc & (((u64)1 << time_shift) - 1);
|
rem = cyc & (((u64)1 << time_shift) \- 1);
|
||||||
timestamp = time_zero + quot * time_mult +
|
timestamp = time_zero + quot * time_mult +
|
||||||
((rem * time_mult) >> time_shift);
|
((rem * time_mult) >> time_shift);
|
||||||
.EE
|
.EE
|
||||||
|
|
|
@ -2845,7 +2845,7 @@ a quiescent process with the command
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
strace \-p <process-ID>
|
strace \-p <process\-ID>
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -488,7 +488,7 @@ struct fs_disk_quota {
|
||||||
respect to # of inodes */
|
respect to # of inodes */
|
||||||
uint16_t d_bwarns; /* # warnings issued with
|
uint16_t d_bwarns; /* # warnings issued with
|
||||||
respect to disk blocks */
|
respect to disk blocks */
|
||||||
int32_t d_padding2; /* Padding - for future use */
|
int32_t d_padding2; /* Padding \- for future use */
|
||||||
uint64_t d_rtb_hardlimit; /* Absolute limit on realtime
|
uint64_t d_rtb_hardlimit; /* Absolute limit on realtime
|
||||||
(RT) disk blocks */
|
(RT) disk blocks */
|
||||||
uint64_t d_rtb_softlimit; /* Preferred limit on RT
|
uint64_t d_rtb_softlimit; /* Preferred limit on RT
|
||||||
|
@ -498,7 +498,7 @@ struct fs_disk_quota {
|
||||||
disk blocks */
|
disk blocks */
|
||||||
uint16_t d_rtbwarns; /* # warnings issued with
|
uint16_t d_rtbwarns; /* # warnings issued with
|
||||||
respect to RT disk blocks */
|
respect to RT disk blocks */
|
||||||
int16_t d_padding3; /* Padding - for future use */
|
int16_t d_padding3; /* Padding \- for future use */
|
||||||
char d_padding4[8]; /* Yet more padding */
|
char d_padding4[8]; /* Yet more padding */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
|
@ -560,7 +560,7 @@ structure itself is defined as follows:
|
||||||
struct fs_qfilestat {
|
struct fs_qfilestat {
|
||||||
uint64_t qfs_ino; /* Inode number */
|
uint64_t qfs_ino; /* Inode number */
|
||||||
uint64_t qfs_nblks; /* Number of BBs
|
uint64_t qfs_nblks; /* Number of BBs
|
||||||
512-byte-blocks */
|
512\-byte\-blocks */
|
||||||
uint32_t qfs_nextents; /* Number of extents */
|
uint32_t qfs_nextents; /* Number of extents */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -609,15 +609,15 @@ structure itself is defined as follows:
|
||||||
struct fs_qfilestatv {
|
struct fs_qfilestatv {
|
||||||
uint64_t qfs_ino; /* Inode number */
|
uint64_t qfs_ino; /* Inode number */
|
||||||
uint64_t qfs_nblks; /* Number of BBs
|
uint64_t qfs_nblks; /* Number of BBs
|
||||||
512-byte-blocks */
|
512\-byte\-blocks */
|
||||||
uint32_t qfs_nextents; /* Number of extents */
|
uint32_t qfs_nextents; /* Number of extents */
|
||||||
uint32_t qfs_pad; /* Pad for 8-byte alignment */
|
uint32_t qfs_pad; /* Pad for 8\-byte alignment */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct fs_quota_statv {
|
struct fs_quota_statv {
|
||||||
int8_t qs_version; /* Version for future
|
int8_t qs_version; /* Version for future
|
||||||
changes */
|
changes */
|
||||||
uint8_t qs_pad1; /* Pad for 16-bit alignment */
|
uint8_t qs_pad1; /* Pad for 16\-bit alignment */
|
||||||
uint16_t qs_flags; /* XFS_QUOTA_.* flags */
|
uint16_t qs_flags; /* XFS_QUOTA_.* flags */
|
||||||
uint32_t qs_incoredqs; /* Number of dquots incore */
|
uint32_t qs_incoredqs; /* Number of dquots incore */
|
||||||
struct fs_qfilestatv qs_uquota; /* User quota
|
struct fs_qfilestatv qs_uquota; /* User quota
|
||||||
|
|
|
@ -74,7 +74,7 @@ struct old_linux_dirent {
|
||||||
unsigned long d_ino; /* inode number */
|
unsigned long d_ino; /* inode number */
|
||||||
unsigned long d_offset; /* offset to this \fIold_linux_dirent\fP */
|
unsigned long d_offset; /* offset to this \fIold_linux_dirent\fP */
|
||||||
unsigned short d_namlen; /* length of this \fId_name\fP */
|
unsigned short d_namlen; /* length of this \fId_name\fP */
|
||||||
char d_name[1]; /* filename (null-terminated) */
|
char d_name[1]; /* filename (null\-terminated) */
|
||||||
}
|
}
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
|
|
|
@ -382,7 +382,7 @@ struct cmsghdr {
|
||||||
size_t cmsg_len; /* Data byte count, including header
|
size_t cmsg_len; /* Data byte count, including header
|
||||||
(type is socklen_t in POSIX) */
|
(type is socklen_t in POSIX) */
|
||||||
int cmsg_level; /* Originating protocol */
|
int cmsg_level; /* Originating protocol */
|
||||||
int cmsg_type; /* Protocol-specific type */
|
int cmsg_type; /* Protocol\-specific type */
|
||||||
/* followed by
|
/* followed by
|
||||||
unsigned char cmsg_data[]; */
|
unsigned char cmsg_data[]; */
|
||||||
};
|
};
|
||||||
|
|
|
@ -1068,11 +1068,11 @@ install_filter(int syscall_nr, int t_arch, int f_errno)
|
||||||
{
|
{
|
||||||
unsigned int upper_nr_limit = 0xffffffff;
|
unsigned int upper_nr_limit = 0xffffffff;
|
||||||
|
|
||||||
/* Assume that AUDIT_ARCH_X86_64 means the normal x86-64 ABI
|
/* Assume that AUDIT_ARCH_X86_64 means the normal x86\-64 ABI
|
||||||
(in the x32 ABI, all system calls have bit 30 set in the
|
(in the x32 ABI, all system calls have bit 30 set in the
|
||||||
\(aqnr\(aq field, meaning the numbers are >= X32_SYSCALL_BIT). */
|
\(aqnr\(aq field, meaning the numbers are >= X32_SYSCALL_BIT). */
|
||||||
if (t_arch == AUDIT_ARCH_X86_64)
|
if (t_arch == AUDIT_ARCH_X86_64)
|
||||||
upper_nr_limit = X32_SYSCALL_BIT - 1;
|
upper_nr_limit = X32_SYSCALL_BIT \- 1;
|
||||||
|
|
||||||
struct sock_filter filter[] = {
|
struct sock_filter filter[] = {
|
||||||
/* [0] Load architecture from \(aqseccomp_data\(aq buffer into
|
/* [0] Load architecture from \(aqseccomp_data\(aq buffer into
|
||||||
|
@ -1089,7 +1089,7 @@ install_filter(int syscall_nr, int t_arch, int f_errno)
|
||||||
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
|
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
|
||||||
(offsetof(struct seccomp_data, nr))),
|
(offsetof(struct seccomp_data, nr))),
|
||||||
|
|
||||||
/* [3] Check ABI - only needed for x86-64 in deny-list use
|
/* [3] Check ABI \- only needed for x86\-64 in deny\-list use
|
||||||
cases. Use BPF_JGT instead of checking against the bit
|
cases. Use BPF_JGT instead of checking against the bit
|
||||||
mask to avoid having to reload the syscall number. */
|
mask to avoid having to reload the syscall number. */
|
||||||
BPF_JUMP(BPF_JMP | BPF_JGT | BPF_K, upper_nr_limit, 3, 0),
|
BPF_JUMP(BPF_JMP | BPF_JGT | BPF_K, upper_nr_limit, 3, 0),
|
||||||
|
|
|
@ -74,7 +74,7 @@ union semun {
|
||||||
struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */
|
struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */
|
||||||
unsigned short *array; /* Array for GETALL, SETALL */
|
unsigned short *array; /* Array for GETALL, SETALL */
|
||||||
struct seminfo *__buf; /* Buffer for IPC_INFO
|
struct seminfo *__buf; /* Buffer for IPC_INFO
|
||||||
(Linux-specific) */
|
(Linux\-specific) */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
|
@ -222,7 +222,7 @@ The argument
|
||||||
.I semnum
|
.I semnum
|
||||||
is ignored.
|
is ignored.
|
||||||
.TP
|
.TP
|
||||||
.BR IPC_INFO " (Linux-specific)"
|
.BR IPC_INFO " (Linux\-specific)"
|
||||||
Return information about system-wide semaphore limits and
|
Return information about system-wide semaphore limits and
|
||||||
parameters in the structure pointed to by
|
parameters in the structure pointed to by
|
||||||
.IR arg.__buf .
|
.IR arg.__buf .
|
||||||
|
@ -242,7 +242,7 @@ struct seminfo {
|
||||||
int semmni; /* Maximum number of semaphore sets */
|
int semmni; /* Maximum number of semaphore sets */
|
||||||
int semmns; /* Maximum number of semaphores in all
|
int semmns; /* Maximum number of semaphores in all
|
||||||
semaphore sets */
|
semaphore sets */
|
||||||
int semmnu; /* System-wide maximum number of undo
|
int semmnu; /* System\-wide maximum number of undo
|
||||||
structures; unused within kernel */
|
structures; unused within kernel */
|
||||||
int semmsl; /* Maximum number of semaphores in a
|
int semmsl; /* Maximum number of semaphores in a
|
||||||
set */
|
set */
|
||||||
|
|
|
@ -257,7 +257,7 @@ struct shminfo {
|
||||||
that a process can attach;
|
that a process can attach;
|
||||||
unused within kernel */
|
unused within kernel */
|
||||||
unsigned long shmall; /* Maximum number of pages of
|
unsigned long shmall; /* Maximum number of pages of
|
||||||
shared memory, system-wide */
|
shared memory, system\-wide */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
|
|
|
@ -319,7 +319,7 @@ siginfo_t {
|
||||||
int si_errno; /* An errno value */
|
int si_errno; /* An errno value */
|
||||||
int si_code; /* Signal code */
|
int si_code; /* Signal code */
|
||||||
int si_trapno; /* Trap number that caused
|
int si_trapno; /* Trap number that caused
|
||||||
hardware-generated signal
|
hardware\-generated signal
|
||||||
(unused on most architectures) */
|
(unused on most architectures) */
|
||||||
.\" FIXME
|
.\" FIXME
|
||||||
.\" The siginfo_t 'si_trapno' field seems to be used
|
.\" The siginfo_t 'si_trapno' field seems to be used
|
||||||
|
|
|
@ -194,7 +194,7 @@ struct signalfd_siginfo {
|
||||||
uint64_t ssi_stime; /* System CPU time consumed
|
uint64_t ssi_stime; /* System CPU time consumed
|
||||||
(SIGCHLD) */
|
(SIGCHLD) */
|
||||||
uint64_t ssi_addr; /* Address that generated signal
|
uint64_t ssi_addr; /* Address that generated signal
|
||||||
(for hardware-generated signals) */
|
(for hardware\-generated signals) */
|
||||||
uint16_t ssi_addr_lsb; /* Least significant bit of address
|
uint16_t ssi_addr_lsb; /* Least significant bit of address
|
||||||
(SIGBUS; since Linux 2.6.37)
|
(SIGBUS; since Linux 2.6.37)
|
||||||
.\" ssi_addr_lsb: commit b8aeec34175fc8fe8b0d40efea4846dfc1ba663e
|
.\" ssi_addr_lsb: commit b8aeec34175fc8fe8b0d40efea4846dfc1ba663e
|
||||||
|
|
|
@ -407,7 +407,7 @@ handler(int sig, siginfo_t *si, void *uc)
|
||||||
{
|
{
|
||||||
/* Note: calling printf() from a signal handler is not safe
|
/* Note: calling printf() from a signal handler is not safe
|
||||||
(and should not be done in production programs), since
|
(and should not be done in production programs), since
|
||||||
printf() is not async\-signal\-safe; see signal-safety(7).
|
printf() is not async\-signal\-safe; see signal\-safety(7).
|
||||||
Nevertheless, we use printf() here as a simple way of
|
Nevertheless, we use printf() here as a simple way of
|
||||||
showing that the handler was called. */
|
showing that the handler was called. */
|
||||||
|
|
||||||
|
|
|
@ -569,14 +569,14 @@ The following shell session demonstrates the use of the program:
|
||||||
0.000: timer started
|
0.000: timer started
|
||||||
3.000: read: 1; total=1
|
3.000: read: 1; total=1
|
||||||
4.000: read: 1; total=2
|
4.000: read: 1; total=2
|
||||||
.BR "\(haZ " " # type control-Z to suspend the program"
|
.BR "\(haZ " " # type control\-Z to suspend the program"
|
||||||
[1]+ Stopped ./timerfd3_demo 3 1 100
|
[1]+ Stopped ./timerfd3_demo 3 1 100
|
||||||
.RB "$ " "fg" " # Resume execution after a few seconds"
|
.RB "$ " "fg" " # Resume execution after a few seconds"
|
||||||
a.out 3 1 100
|
a.out 3 1 100
|
||||||
9.660: read: 5; total=7
|
9.660: read: 5; total=7
|
||||||
10.000: read: 1; total=8
|
10.000: read: 1; total=8
|
||||||
11.000: read: 1; total=9
|
11.000: read: 1; total=9
|
||||||
.BR "\(haC " " # type control-C to suspend the program"
|
.BR "\(haC " " # type control\-C to suspend the program"
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.SS Program source
|
.SS Program source
|
||||||
|
@ -586,7 +586,7 @@ a.out 3 1 100
|
||||||
.\" the required stuff is in glibc
|
.\" the required stuff is in glibc
|
||||||
.\"
|
.\"
|
||||||
.\"
|
.\"
|
||||||
.\"/* Link with -lrt */
|
.\"/* Link with \-lrt */
|
||||||
.\"#define _GNU_SOURCE
|
.\"#define _GNU_SOURCE
|
||||||
.\"#include <sys/syscall.h>
|
.\"#include <sys/syscall.h>
|
||||||
.\"#include <unistd.h>
|
.\"#include <unistd.h>
|
||||||
|
|
|
@ -46,7 +46,7 @@ struct is defined in
|
||||||
.EX
|
.EX
|
||||||
struct utsname {
|
struct utsname {
|
||||||
char sysname[]; /* Operating system name (e.g., "Linux") */
|
char sysname[]; /* Operating system name (e.g., "Linux") */
|
||||||
char nodename[]; /* Name within "some implementation-defined
|
char nodename[]; /* Name within "some implementation\-defined
|
||||||
network" */
|
network" */
|
||||||
char release[]; /* Operating system release
|
char release[]; /* Operating system release
|
||||||
(e.g., "2.6.28") */
|
(e.g., "2.6.28") */
|
||||||
|
|
|
@ -318,10 +318,10 @@ main(void)
|
||||||
/* Forward traversal */
|
/* Forward traversal */
|
||||||
i = 0;
|
i = 0;
|
||||||
CIRCLEQ_FOREACH(np, &head, entries)
|
CIRCLEQ_FOREACH(np, &head, entries)
|
||||||
np->data = i++;
|
np\->data = i++;
|
||||||
/* Reverse traversal */
|
/* Reverse traversal */
|
||||||
CIRCLEQ_FOREACH_REVERSE(np, &head, entries)
|
CIRCLEQ_FOREACH_REVERSE(np, &head, entries)
|
||||||
printf("%i\en", np->data);
|
printf("%i\en", np\->data);
|
||||||
/* Queue deletion */
|
/* Queue deletion */
|
||||||
n1 = CIRCLEQ_FIRST(&head);
|
n1 = CIRCLEQ_FIRST(&head);
|
||||||
while (n1 != (void *)&head) {
|
while (n1 != (void *)&head) {
|
||||||
|
|
|
@ -124,7 +124,7 @@ An example run is the following:
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
.RB "$" " ./a.out 1" " # Show CPU clock of init process"
|
.RB "$" " ./a.out 1" " # Show CPU clock of init process"
|
||||||
CPU-time clock for PID 1 is 2.213466748 seconds
|
CPU\-time clock for PID 1 is 2.213466748 seconds
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.SS Program source
|
.SS Program source
|
||||||
|
@ -158,7 +158,7 @@ main(int argc, char *argv[])
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("CPU-time clock for PID %s is %jd.%09ld seconds\en",
|
printf("CPU\-time clock for PID %s is %jd.%09ld seconds\en",
|
||||||
argv[1], (intmax_t) ts.tv_sec, ts.tv_nsec);
|
argv[1], (intmax_t) ts.tv_sec, ts.tv_nsec);
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,7 +57,7 @@ struct cmsghdr {
|
||||||
size_t cmsg_len; /* Data byte count, including header
|
size_t cmsg_len; /* Data byte count, including header
|
||||||
(type is socklen_t in POSIX) */
|
(type is socklen_t in POSIX) */
|
||||||
int cmsg_level; /* Originating protocol */
|
int cmsg_level; /* Originating protocol */
|
||||||
int cmsg_type; /* Protocol-specific type */
|
int cmsg_type; /* Protocol\-specific type */
|
||||||
/* followed by
|
/* followed by
|
||||||
unsigned char cmsg_data[]; */
|
unsigned char cmsg_data[]; */
|
||||||
};
|
};
|
||||||
|
|
|
@ -77,7 +77,7 @@ argument is a structure of the following type:
|
||||||
.EX
|
.EX
|
||||||
struct dl_phdr_info {
|
struct dl_phdr_info {
|
||||||
ElfW(Addr) dlpi_addr; /* Base address of object */
|
ElfW(Addr) dlpi_addr; /* Base address of object */
|
||||||
const char *dlpi_name; /* (Null-terminated) name of
|
const char *dlpi_name; /* (Null\-terminated) name of
|
||||||
object */
|
object */
|
||||||
const ElfW(Phdr) *dlpi_phdr; /* Pointer to array of
|
const ElfW(Phdr) *dlpi_phdr; /* Pointer to array of
|
||||||
ELF program headers
|
ELF program headers
|
||||||
|
@ -186,11 +186,11 @@ for further details):
|
||||||
#define PT_NOTE 4 /* Auxiliary information */
|
#define PT_NOTE 4 /* Auxiliary information */
|
||||||
#define PT_SHLIB 5 /* Reserved */
|
#define PT_SHLIB 5 /* Reserved */
|
||||||
#define PT_PHDR 6 /* Entry for header table itself */
|
#define PT_PHDR 6 /* Entry for header table itself */
|
||||||
#define PT_TLS 7 /* Thread-local storage segment */
|
#define PT_TLS 7 /* Thread\-local storage segment */
|
||||||
#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */
|
#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */
|
||||||
#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */
|
#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */
|
||||||
.\" For PT_GNU_STACK, see http://www.airs.com/blog/archives/518
|
.\" For PT_GNU_STACK, see http://www.airs.com/blog/archives/518
|
||||||
#define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */
|
#define PT_GNU_RELRO 0x6474e552 /* Read\-only after relocation */
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.SH RETURN VALUE
|
.SH RETURN VALUE
|
||||||
|
@ -273,7 +273,7 @@ Name: "" (9 segments)
|
||||||
6: [ 0x400970; memsz: 3c] flags: 0x4; PT_GNU_EH_FRAME
|
6: [ 0x400970; memsz: 3c] flags: 0x4; PT_GNU_EH_FRAME
|
||||||
7: [ (nil); memsz: 0] flags: 0x6; PT_GNU_STACK
|
7: [ (nil); memsz: 0] flags: 0x6; PT_GNU_STACK
|
||||||
8: [ 0x600e10; memsz: 1f0] flags: 0x4; PT_GNU_RELRO
|
8: [ 0x600e10; memsz: 1f0] flags: 0x4; PT_GNU_RELRO
|
||||||
Name: "linux-vdso.so.1" (4 segments)
|
Name: "linux\-vdso.so.1" (4 segments)
|
||||||
0: [0x7ffc6edd1000; memsz: e89] flags: 0x5; PT_LOAD
|
0: [0x7ffc6edd1000; memsz: e89] flags: 0x5; PT_LOAD
|
||||||
1: [0x7ffc6edd1360; memsz: 110] flags: 0x4; PT_DYNAMIC
|
1: [0x7ffc6edd1360; memsz: 110] flags: 0x4; PT_DYNAMIC
|
||||||
2: [0x7ffc6edd17b0; memsz: 3c] flags: 0x4; PT_NOTE
|
2: [0x7ffc6edd17b0; memsz: 3c] flags: 0x4; PT_NOTE
|
||||||
|
@ -289,7 +289,7 @@ Name: "/lib64/libc.so.6" (10 segments)
|
||||||
7: [0x7f557145b99c; memsz: 544c] flags: 0x4; PT_GNU_EH_FRAME
|
7: [0x7f557145b99c; memsz: 544c] flags: 0x4; PT_GNU_EH_FRAME
|
||||||
8: [0x7f55712ce000; memsz: 0] flags: 0x6; PT_GNU_STACK
|
8: [0x7f55712ce000; memsz: 0] flags: 0x6; PT_GNU_STACK
|
||||||
9: [0x7f55716857a0; memsz: 3860] flags: 0x4; PT_GNU_RELRO
|
9: [0x7f55716857a0; memsz: 3860] flags: 0x4; PT_GNU_RELRO
|
||||||
Name: "/lib64/ld-linux-x86-64.so.2" (7 segments)
|
Name: "/lib64/ld\-linux\-x86\-64.so.2" (7 segments)
|
||||||
0: [0x7f557168f000; memsz: 20828] flags: 0x5; PT_LOAD
|
0: [0x7f557168f000; memsz: 20828] flags: 0x5; PT_LOAD
|
||||||
1: [0x7f55718afba0; memsz: 15a8] flags: 0x6; PT_LOAD
|
1: [0x7f55718afba0; memsz: 15a8] flags: 0x6; PT_LOAD
|
||||||
2: [0x7f55718afe10; memsz: 190] flags: 0x6; PT_DYNAMIC
|
2: [0x7f55718afe10; memsz: 190] flags: 0x6; PT_DYNAMIC
|
||||||
|
|
|
@ -594,7 +594,7 @@ main(void)
|
||||||
|
|
||||||
/* According to the ISO C standard, casting between function
|
/* According to the ISO C standard, casting between function
|
||||||
pointers and \(aqvoid *\(aq, as done above, produces undefined results.
|
pointers and \(aqvoid *\(aq, as done above, produces undefined results.
|
||||||
POSIX.1-2001 and POSIX.1-2008 accepted this state of affairs and
|
POSIX.1\-2001 and POSIX.1\-2008 accepted this state of affairs and
|
||||||
proposed the following workaround:
|
proposed the following workaround:
|
||||||
|
|
||||||
*(void **) (&cosine) = dlsym(handle, "cos");
|
*(void **) (&cosine) = dlsym(handle, "cos");
|
||||||
|
@ -602,7 +602,7 @@ main(void)
|
||||||
This (clumsy) cast conforms with the ISO C standard and will
|
This (clumsy) cast conforms with the ISO C standard and will
|
||||||
avoid any compiler warnings.
|
avoid any compiler warnings.
|
||||||
|
|
||||||
The 2013 Technical Corrigendum 1 to POSIX.1-2008 improved matters
|
The 2013 Technical Corrigendum 1 to POSIX.1\-2008 improved matters
|
||||||
by requiring that conforming implementations support casting
|
by requiring that conforming implementations support casting
|
||||||
\(aqvoid *\(aq to a function pointer. Nevertheless, some compilers
|
\(aqvoid *\(aq to a function pointer. Nevertheless, some compilers
|
||||||
(e.g., gcc with the \(aq\-pedantic\(aq option) may complain about the
|
(e.g., gcc with the \(aq\-pedantic\(aq option) may complain about the
|
||||||
|
|
|
@ -161,10 +161,10 @@ main(int argc, char *argv[])
|
||||||
uint8_t arr[4];
|
uint8_t arr[4];
|
||||||
} x;
|
} x;
|
||||||
|
|
||||||
x.arr[0] = 0x11; /* Lowest-address byte */
|
x.arr[0] = 0x11; /* Lowest\-address byte */
|
||||||
x.arr[1] = 0x22;
|
x.arr[1] = 0x22;
|
||||||
x.arr[2] = 0x33;
|
x.arr[2] = 0x33;
|
||||||
x.arr[3] = 0x44; /* Highest-address byte */
|
x.arr[3] = 0x44; /* Highest\-address byte */
|
||||||
|
|
||||||
printf("x.u32 = %#x\en", x.u32);
|
printf("x.u32 = %#x\en", x.u32);
|
||||||
printf("htole32(x.u32) = %#x\en", htole32(x.u32));
|
printf("htole32(x.u32) = %#x\en", htole32(x.u32));
|
||||||
|
|
|
@ -74,7 +74,7 @@ struct group {
|
||||||
char *gr_name; /* group name */
|
char *gr_name; /* group name */
|
||||||
char *gr_passwd; /* group password */
|
char *gr_passwd; /* group password */
|
||||||
gid_t gr_gid; /* group ID */
|
gid_t gr_gid; /* group ID */
|
||||||
char **gr_mem; /* NULL-terminated array of pointers
|
char **gr_mem; /* NULL\-terminated array of pointers
|
||||||
to names of group members */
|
to names of group members */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
|
|
|
@ -248,11 +248,11 @@ The following shell session demonstrates the operation of the program:
|
||||||
.EX
|
.EX
|
||||||
.RB "$" " TFILE=$PWD/tfile"
|
.RB "$" " TFILE=$PWD/tfile"
|
||||||
.RB "$" " echo \(aq%A\(aq > $TFILE " " # Full name of the day of the week"
|
.RB "$" " echo \(aq%A\(aq > $TFILE " " # Full name of the day of the week"
|
||||||
.RB "$" " echo \(aq%T\(aq >> $TFILE" " # ISO date (YYYY-MM-DD)"
|
.RB "$" " echo \(aq%T\(aq >> $TFILE" " # ISO date (YYYY\-MM\-DD)"
|
||||||
.RB "$" " echo \(aq%F\(aq >> $TFILE" " # Time (HH:MM:SS)"
|
.RB "$" " echo \(aq%F\(aq >> $TFILE" " # Time (HH:MM:SS)"
|
||||||
.RB "$" " date"
|
.RB "$" " date"
|
||||||
.RB "$" " export DATEMSK=$TFILE"
|
.RB "$" " export DATEMSK=$TFILE"
|
||||||
.RB "$" " ./a.out Tuesday \(aq2009-12-28\(aq \(aq12:22:33\(aq"
|
.RB "$" " ./a.out Tuesday \(aq2009\-12\-28\(aq \(aq12:22:33\(aq"
|
||||||
Sun Sep 7 06:03:36 CEST 2008
|
Sun Sep 7 06:03:36 CEST 2008
|
||||||
Call 1 ("Tuesday") succeeded:
|
Call 1 ("Tuesday") succeeded:
|
||||||
tm_sec = 36
|
tm_sec = 36
|
||||||
|
@ -264,7 +264,7 @@ Call 1 ("Tuesday") succeeded:
|
||||||
tm_wday = 2
|
tm_wday = 2
|
||||||
tm_yday = 252
|
tm_yday = 252
|
||||||
tm_isdst = 1
|
tm_isdst = 1
|
||||||
Call 2 ("2009-12-28") succeeded:
|
Call 2 ("2009\-12\-28") succeeded:
|
||||||
tm_sec = 36
|
tm_sec = 36
|
||||||
tm_min = 3
|
tm_min = 3
|
||||||
tm_hour = 6
|
tm_hour = 6
|
||||||
|
|
|
@ -97,7 +97,7 @@ struct group {
|
||||||
char *gr_name; /* group name */
|
char *gr_name; /* group name */
|
||||||
char *gr_passwd; /* group password */
|
char *gr_passwd; /* group password */
|
||||||
gid_t gr_gid; /* group ID */
|
gid_t gr_gid; /* group ID */
|
||||||
char **gr_mem; /* NULL-terminated array of pointers
|
char **gr_mem; /* NULL\-terminated array of pointers
|
||||||
to names of group members */
|
to names of group members */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
|
|
|
@ -74,7 +74,7 @@ struct group {
|
||||||
char *gr_name; /* group name */
|
char *gr_name; /* group name */
|
||||||
char *gr_passwd; /* group password */
|
char *gr_passwd; /* group password */
|
||||||
gid_t gr_gid; /* group ID */
|
gid_t gr_gid; /* group ID */
|
||||||
char **gr_mem; /* NULL-terminated array of pointers
|
char **gr_mem; /* NULL\-terminated array of pointers
|
||||||
to names of group members */
|
to names of group members */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
|
|
|
@ -84,7 +84,7 @@ struct group {
|
||||||
char *gr_name; /* group name */
|
char *gr_name; /* group name */
|
||||||
char *gr_passwd; /* group password */
|
char *gr_passwd; /* group password */
|
||||||
gid_t gr_gid; /* group ID */
|
gid_t gr_gid; /* group ID */
|
||||||
char **gr_mem; /* NULL-terminated array of pointers
|
char **gr_mem; /* NULL\-terminated array of pointers
|
||||||
to names of group members */
|
to names of group members */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
|
|
|
@ -67,11 +67,11 @@ struct ifaddrs {
|
||||||
struct sockaddr *ifu_broadaddr;
|
struct sockaddr *ifu_broadaddr;
|
||||||
/* Broadcast address of interface */
|
/* Broadcast address of interface */
|
||||||
struct sockaddr *ifu_dstaddr;
|
struct sockaddr *ifu_dstaddr;
|
||||||
/* Point-to-point destination address */
|
/* Point\-to\-point destination address */
|
||||||
} ifa_ifu;
|
} ifa_ifu;
|
||||||
#define ifa_broadaddr ifa_ifu.ifu_broadaddr
|
#define ifa_broadaddr ifa_ifu.ifu_broadaddr
|
||||||
#define ifa_dstaddr ifa_ifu.ifu_dstaddr
|
#define ifa_dstaddr ifa_ifu.ifu_dstaddr
|
||||||
void *ifa_data; /* Address-specific data */
|
void *ifa_data; /* Address\-specific data */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
|
|
|
@ -188,7 +188,7 @@ struct spwd {
|
||||||
char *sp_pwdp; /* Encrypted password */
|
char *sp_pwdp; /* Encrypted password */
|
||||||
long sp_lstchg; /* Date of last change
|
long sp_lstchg; /* Date of last change
|
||||||
(measured in days since
|
(measured in days since
|
||||||
1970-01-01 00:00:00 +0000 (UTC)) */
|
1970\-01\-01 00:00:00 +0000 (UTC)) */
|
||||||
long sp_min; /* Min # of days between changes */
|
long sp_min; /* Min # of days between changes */
|
||||||
long sp_max; /* Max # of days between changes */
|
long sp_max; /* Max # of days between changes */
|
||||||
long sp_warn; /* # of days before password expires
|
long sp_warn; /* # of days before password expires
|
||||||
|
@ -197,7 +197,7 @@ struct spwd {
|
||||||
until account is disabled */
|
until account is disabled */
|
||||||
long sp_expire; /* Date when account expires
|
long sp_expire; /* Date when account expires
|
||||||
(measured in days since
|
(measured in days since
|
||||||
1970-01-01 00:00:00 +0000 (UTC)) */
|
1970\-01\-01 00:00:00 +0000 (UTC)) */
|
||||||
unsigned long sp_flag; /* Reserved */
|
unsigned long sp_flag; /* Reserved */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
|
|
|
@ -47,7 +47,7 @@ structure contains at least the following entries:
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
unsigned int if_index; /* Index of interface (1, 2, ...) */
|
unsigned int if_index; /* Index of interface (1, 2, ...) */
|
||||||
char *if_name; /* Null-terminated name ("eth0", etc.) */
|
char *if_name; /* Null\-terminated name ("eth0", etc.) */
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -303,13 +303,13 @@ main(void)
|
||||||
|
|
||||||
i = 0; /* Forward traversal */
|
i = 0; /* Forward traversal */
|
||||||
LIST_FOREACH(np, &head, entries)
|
LIST_FOREACH(np, &head, entries)
|
||||||
np->data = i++;
|
np\->data = i++;
|
||||||
|
|
||||||
LIST_REMOVE(n2, entries); /* Deletion */
|
LIST_REMOVE(n2, entries); /* Deletion */
|
||||||
free(n2);
|
free(n2);
|
||||||
/* Forward traversal */
|
/* Forward traversal */
|
||||||
LIST_FOREACH(np, &head, entries)
|
LIST_FOREACH(np, &head, entries)
|
||||||
printf("%i\en", np->data);
|
printf("%i\en", np\->data);
|
||||||
/* List deletion */
|
/* List deletion */
|
||||||
n1 = LIST_FIRST(&head);
|
n1 = LIST_FIRST(&head);
|
||||||
while (n1 != NULL) {
|
while (n1 != NULL) {
|
||||||
|
|
|
@ -56,7 +56,7 @@ is defined as follows:
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
struct mallinfo2 {
|
struct mallinfo2 {
|
||||||
size_t arena; /* Non-mmapped space allocated (bytes) */
|
size_t arena; /* Non\-mmapped space allocated (bytes) */
|
||||||
size_t ordblks; /* Number of free chunks */
|
size_t ordblks; /* Number of free chunks */
|
||||||
size_t smblks; /* Number of free fastbin blocks */
|
size_t smblks; /* Number of free fastbin blocks */
|
||||||
size_t hblks; /* Number of mmapped regions */
|
size_t hblks; /* Number of mmapped regions */
|
||||||
|
@ -66,7 +66,7 @@ struct mallinfo2 {
|
||||||
size_t fsmblks; /* Space in freed fastbin blocks (bytes) */
|
size_t fsmblks; /* Space in freed fastbin blocks (bytes) */
|
||||||
size_t uordblks; /* Total allocated space (bytes) */
|
size_t uordblks; /* Total allocated space (bytes) */
|
||||||
size_t fordblks; /* Total free space (bytes) */
|
size_t fordblks; /* Total free space (bytes) */
|
||||||
size_t keepcost; /* Top-most, releasable space (bytes) */
|
size_t keepcost; /* Top\-most, releasable space (bytes) */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
|
|
|
@ -322,7 +322,7 @@ is given an argument of 0.0, does not use
|
||||||
.EX
|
.EX
|
||||||
.RB "$" " ./a.out 0.0"
|
.RB "$" " ./a.out 0.0"
|
||||||
errno: Numerical result out of range
|
errno: Numerical result out of range
|
||||||
x=-inf
|
x=\-inf
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
@ -338,7 +338,7 @@ matherr SING exception in log() function
|
||||||
retval: \-340282346638528859811704183484516925440.000000
|
retval: \-340282346638528859811704183484516925440.000000
|
||||||
log: SING error
|
log: SING error
|
||||||
errno: Numerical argument out of domain
|
errno: Numerical argument out of domain
|
||||||
x=-340282346638528859811704183484516925440.000000
|
x=\-340282346638528859811704183484516925440.000000
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
@ -354,7 +354,7 @@ is called, and returns a nonzero value:
|
||||||
matherr SING exception in log() function
|
matherr SING exception in log() function
|
||||||
args: 0.000000, 0.000000
|
args: 0.000000, 0.000000
|
||||||
retval: \-340282346638528859811704183484516925440.000000
|
retval: \-340282346638528859811704183484516925440.000000
|
||||||
x=-340282346638528859811704183484516925440.000000
|
x=\-340282346638528859811704183484516925440.000000
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -173,7 +173,7 @@ diagnosed memory leaks at two different locations in the program:
|
||||||
.RB "$ " "./t_mtrace"
|
.RB "$ " "./t_mtrace"
|
||||||
.RB "$ " "mtrace ./t_mtrace $MALLOC_TRACE"
|
.RB "$ " "mtrace ./t_mtrace $MALLOC_TRACE"
|
||||||
Memory not freed:
|
Memory not freed:
|
||||||
-----------------
|
-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
||||||
Address Size Caller
|
Address Size Caller
|
||||||
0x084c9378 0x64 at /home/cecilia/t_mtrace.c:12
|
0x084c9378 0x64 at /home/cecilia/t_mtrace.c:12
|
||||||
0x084c93e0 0x64 at /home/cecilia/t_mtrace.c:12
|
0x084c93e0 0x64 at /home/cecilia/t_mtrace.c:12
|
||||||
|
|
|
@ -46,7 +46,7 @@ is equivalent to:
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
strtod("NAN(char-sequence)", NULL);
|
strtod("NAN(char\-sequence)", NULL);
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -289,7 +289,7 @@ New Zealand Māori):
|
||||||
.EX
|
.EX
|
||||||
$ LC_ALL=mi_NZ ./a.out fr_FR ""
|
$ LC_ALL=mi_NZ ./a.out fr_FR ""
|
||||||
123456,789
|
123456,789
|
||||||
Te Paraire, te 07 o Poutū-te-rangi, 2014 00:38:44 CET
|
Te Paraire, te 07 o Poutū\-te\-rangi, 2014 00:38:44 CET
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.SS Program source
|
.SS Program source
|
||||||
|
|
|
@ -195,7 +195,7 @@ New thread started
|
||||||
cnt = 0
|
cnt = 0
|
||||||
cnt = 1
|
cnt = 1
|
||||||
Canceling thread
|
Canceling thread
|
||||||
Called clean-up handler
|
Called clean\-up handler
|
||||||
Thread was canceled; cnt = 0
|
Thread was canceled; cnt = 0
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
|
@ -236,7 +236,7 @@ $ \fB./a.out x 1\fP
|
||||||
New thread started
|
New thread started
|
||||||
cnt = 0
|
cnt = 0
|
||||||
cnt = 1
|
cnt = 1
|
||||||
Called clean-up handler
|
Called clean\-up handler
|
||||||
Thread terminated normally; cnt = 0
|
Thread terminated normally; cnt = 0
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
|
|
|
@ -342,7 +342,7 @@ main(int argc, char *argv[])
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "Usage: %s [\-s stack-size] arg...\en",
|
fprintf(stderr, "Usage: %s [\-s stack\-size] arg...\en",
|
||||||
argv[0]);
|
argv[0]);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -190,7 +190,7 @@ and that thread displays its scheduling policy and priority.
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
$ \fBsu\fP # Need privilege to set real-time scheduling policies
|
$ \fBsu\fP # Need privilege to set real\-time scheduling policies
|
||||||
Password:
|
Password:
|
||||||
# \fB./a.out \-mf10 \-ar20 \-i e\fP
|
# \fB./a.out \-mf10 \-ar20 \-i e\fP
|
||||||
Scheduler settings of main thread
|
Scheduler settings of main thread
|
||||||
|
|
|
@ -63,7 +63,7 @@ struct dirent {
|
||||||
unsigned short d_reclen; /* Length of this record */
|
unsigned short d_reclen; /* Length of this record */
|
||||||
unsigned char d_type; /* Type of file; not supported
|
unsigned char d_type; /* Type of file; not supported
|
||||||
by all filesystem types */
|
by all filesystem types */
|
||||||
char d_name[256]; /* Null-terminated filename */
|
char d_name[256]; /* Null\-terminated filename */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
|
|
|
@ -386,7 +386,7 @@ main(int argc, char *argv[])
|
||||||
if (shmp == MAP_FAILED)
|
if (shmp == MAP_FAILED)
|
||||||
errExit("mmap");
|
errExit("mmap");
|
||||||
|
|
||||||
/* Initialize semaphores as process-shared, with value 0. */
|
/* Initialize semaphores as process\-shared, with value 0. */
|
||||||
|
|
||||||
if (sem_init(&shmp\->sem1, 1, 0) == \-1)
|
if (sem_init(&shmp\->sem1, 1, 0) == \-1)
|
||||||
errExit("sem_init\-sem1");
|
errExit("sem_init\-sem1");
|
||||||
|
|
|
@ -316,12 +316,12 @@ main(void)
|
||||||
for (int i = 0; i < 5; i++) {
|
for (int i = 0; i < 5; i++) {
|
||||||
n1 = malloc(sizeof(struct entry));
|
n1 = malloc(sizeof(struct entry));
|
||||||
SLIST_INSERT_HEAD(&head, n1, entries);
|
SLIST_INSERT_HEAD(&head, n1, entries);
|
||||||
n1->data = i;
|
n1\->data = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Forward traversal */
|
/* Forward traversal */
|
||||||
SLIST_FOREACH(np, &head, entries)
|
SLIST_FOREACH(np, &head, entries)
|
||||||
printf("%i\en", np->data);
|
printf("%i\en", np\->data);
|
||||||
|
|
||||||
while (!SLIST_EMPTY(&head)) { /* List deletion */
|
while (!SLIST_EMPTY(&head)) { /* List deletion */
|
||||||
n1 = SLIST_FIRST(&head);
|
n1 = SLIST_FIRST(&head);
|
||||||
|
|
|
@ -339,15 +339,15 @@ main(void)
|
||||||
free(n3);
|
free(n3);
|
||||||
|
|
||||||
n1 = STAILQ_FIRST(&head);
|
n1 = STAILQ_FIRST(&head);
|
||||||
n1->data = 0;
|
n1\->data = 0;
|
||||||
for (int i = 1; i < 5; i++) {
|
for (int i = 1; i < 5; i++) {
|
||||||
n1 = malloc(sizeof(struct entry));
|
n1 = malloc(sizeof(struct entry));
|
||||||
STAILQ_INSERT_HEAD(&head, n1, entries);
|
STAILQ_INSERT_HEAD(&head, n1, entries);
|
||||||
n1->data = i;
|
n1\->data = i;
|
||||||
}
|
}
|
||||||
/* Forward traversal */
|
/* Forward traversal */
|
||||||
STAILQ_FOREACH(np, &head, entries)
|
STAILQ_FOREACH(np, &head, entries)
|
||||||
printf("%i\en", np->data);
|
printf("%i\en", np\->data);
|
||||||
/* TailQ deletion */
|
/* TailQ deletion */
|
||||||
n1 = STAILQ_FIRST(&head);
|
n1 = STAILQ_FIRST(&head);
|
||||||
while (n1 != NULL) {
|
while (n1 != NULL) {
|
||||||
|
|
|
@ -395,10 +395,10 @@ main(void)
|
||||||
/* Forward traversal */
|
/* Forward traversal */
|
||||||
i = 0;
|
i = 0;
|
||||||
TAILQ_FOREACH(np, &head, entries)
|
TAILQ_FOREACH(np, &head, entries)
|
||||||
np->data = i++;
|
np\->data = i++;
|
||||||
/* Reverse traversal */
|
/* Reverse traversal */
|
||||||
TAILQ_FOREACH_REVERSE(np, &head, tailhead, entries)
|
TAILQ_FOREACH_REVERSE(np, &head, tailhead, entries)
|
||||||
printf("%i\en", np->data);
|
printf("%i\en", np\->data);
|
||||||
/* TailQ deletion */
|
/* TailQ deletion */
|
||||||
n1 = TAILQ_FIRST(&head);
|
n1 = TAILQ_FIRST(&head);
|
||||||
while (n1 != NULL) {
|
while (n1 != NULL) {
|
||||||
|
|
|
@ -123,7 +123,7 @@ The hour must be between 0 and 24, and the minutes and seconds 00 and 59:
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
.RI [ + | - ] hh [ :mm [ :ss ]]
|
.RI [ + | \- ] hh [ :mm [ :ss ]]
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
@ -167,7 +167,7 @@ and the changeovers happen at the default time of 02:00:00:
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
TZ="NZST-12:00:00NZDT-13:00:00,M10.1.0,M3.3.0"
|
TZ="NZST\-12:00:00NZDT\-13:00:00,M10.1.0,M3.3.0"
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
|
12
man4/cciss.4
12
man4/cciss.4
|
@ -112,11 +112,11 @@ Minor numbers:
|
||||||
.PP
|
.PP
|
||||||
.EX
|
.EX
|
||||||
b7 b6 b5 b4 b3 b2 b1 b0
|
b7 b6 b5 b4 b3 b2 b1 b0
|
||||||
|----+----| |----+----|
|
|\-\-\-\-+\-\-\-\-| |\-\-\-\-+\-\-\-\-|
|
||||||
| |
|
| |
|
||||||
| +-------- Partition ID (0=wholedev, 1\-15 partition)
|
| +\-\-\-\-\-\-\-\- Partition ID (0=wholedev, 1\-15 partition)
|
||||||
|
|
|
|
||||||
+-------------------- Logical Volume number
|
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Logical Volume number
|
||||||
.EE
|
.EE
|
||||||
.PP
|
.PP
|
||||||
The device naming scheme is:
|
The device naming scheme is:
|
||||||
|
@ -144,9 +144,9 @@ For example:
|
||||||
$ \fBcd /proc/driver/cciss\fP
|
$ \fBcd /proc/driver/cciss\fP
|
||||||
$ \fBls \-l\fP
|
$ \fBls \-l\fP
|
||||||
total 0
|
total 0
|
||||||
-rw-r--r-- 1 root root 0 2010\-09\-10 10:38 cciss0
|
-rw\-r\-\-r\-\- 1 root root 0 2010\-09\-10 10:38 cciss0
|
||||||
-rw-r--r-- 1 root root 0 2010\-09\-10 10:38 cciss1
|
-rw\-r\-\-r\-\- 1 root root 0 2010\-09\-10 10:38 cciss1
|
||||||
-rw-r--r-- 1 root root 0 2010\-09\-10 10:38 cciss2
|
-rw\-r\-\-r\-\- 1 root root 0 2010\-09\-10 10:38 cciss2
|
||||||
$ \fBcat cciss2\fP
|
$ \fBcat cciss2\fP
|
||||||
cciss2: HP Smart Array P800 Controller
|
cciss2: HP Smart Array P800 Controller
|
||||||
Board ID: 0x3223103c
|
Board ID: 0x3223103c
|
||||||
|
|
|
@ -288,7 +288,7 @@ the normal root device to
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
echo 0x365 >/proc/sys/kernel/real-root-dev
|
echo 0x365 >/proc/sys/kernel/real\-root\-dev
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
@ -300,10 +300,10 @@ IP number 193.8.232.2 and named "idefix":
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
echo /var/nfsroot >/proc/sys/kernel/nfs-root-name
|
echo /var/nfsroot >/proc/sys/kernel/nfs\-root\-name
|
||||||
echo 193.8.232.2:193.8.232.7::255.255.255.0:idefix \e
|
echo 193.8.232.2:193.8.232.7::255.255.255.0:idefix \e
|
||||||
>/proc/sys/kernel/nfs-root-addrs
|
>/proc/sys/kernel/nfs\-root\-addrs
|
||||||
echo 255 >/proc/sys/kernel/real-root-dev
|
echo 255 >/proc/sys/kernel/real\-root\-dev
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -177,8 +177,8 @@ which is run during the Linux system start-up sequence:
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
echo "Initializing random number generator..."
|
echo "Initializing random number generator..."
|
||||||
random_seed=/var/run/random-seed
|
random_seed=/var/run/random\-seed
|
||||||
# Carry a random seed from start-up to start-up
|
# Carry a random seed from start\-up to start\-up
|
||||||
# Load and then save the whole entropy pool
|
# Load and then save the whole entropy pool
|
||||||
if [ \-f $random_seed ]; then
|
if [ \-f $random_seed ]; then
|
||||||
cat $random_seed >/dev/urandom
|
cat $random_seed >/dev/urandom
|
||||||
|
@ -198,10 +198,10 @@ run during the Linux system shutdown:
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
# Carry a random seed from shut-down to start-up
|
# Carry a random seed from shut\-down to start\-up
|
||||||
# Save the whole entropy pool
|
# Save the whole entropy pool
|
||||||
echo "Saving random seed..."
|
echo "Saving random seed..."
|
||||||
random_seed=/var/run/random-seed
|
random_seed=/var/run/random\-seed
|
||||||
touch $random_seed
|
touch $random_seed
|
||||||
chmod 600 $random_seed
|
chmod 600 $random_seed
|
||||||
poolfile=/proc/sys/kernel/random/poolsize
|
poolfile=/proc/sys/kernel/random/poolsize
|
||||||
|
|
|
@ -175,7 +175,7 @@ For example:
|
||||||
.EX
|
.EX
|
||||||
$ \c
|
$ \c
|
||||||
.B cat /sys/class/scsi_host/host1/driver_version
|
.B cat /sys/class/scsi_host/host1/driver_version
|
||||||
1.1.2-126
|
1.1.2\-126
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.TP
|
.TP
|
||||||
|
@ -191,7 +191,7 @@ For example:
|
||||||
.EX
|
.EX
|
||||||
$ \c
|
$ \c
|
||||||
.B cat /sys/class/scsi_host/host1/firmware_version
|
.B cat /sys/class/scsi_host/host1/firmware_version
|
||||||
1.29-112
|
1.29\-112
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.TP
|
.TP
|
||||||
|
@ -207,7 +207,7 @@ For example:
|
||||||
.EX
|
.EX
|
||||||
$ \c
|
$ \c
|
||||||
.B cat /sys/class/scsi_host/host1/model
|
.B cat /sys/class/scsi_host/host1/model
|
||||||
1100-16i
|
1100\-16i
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.TP
|
.TP
|
||||||
|
|
|
@ -69,7 +69,7 @@ parameter when creating the interfaces:
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
# ip link add <p1-name> netns <p1-ns> type veth peer <p2-name> netns <p2-ns>
|
# ip link add <p1\-name> netns <p1\-ns> type veth peer <p2\-name> netns <p2\-ns>
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
@ -79,7 +79,7 @@ pair, move one side to the other namespace:
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
# ip link set <p2-name> netns <p2-ns>
|
# ip link set <p2\-name> netns <p2\-ns>
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
@ -95,7 +95,7 @@ network interface, using commands something like:
|
||||||
NIC statistics:
|
NIC statistics:
|
||||||
peer_ifindex: 16
|
peer_ifindex: 16
|
||||||
# \fBip link | grep \(aq\(ha16:\(aq\fP # Look up interface
|
# \fBip link | grep \(aq\(ha16:\(aq\fP # Look up interface
|
||||||
16: ve_B@ve_A: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc ...
|
16: ve_B@ve_A: <BROADCAST,MULTICAST,M\-DOWN> mtu 1500 qdisc ...
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
|
|
|
@ -73,7 +73,7 @@ struct acct {
|
||||||
(see wait(2)) */
|
(see wait(2)) */
|
||||||
char ac_comm[ACCT_COMM+1];
|
char ac_comm[ACCT_COMM+1];
|
||||||
/* Command name (basename of last
|
/* Command name (basename of last
|
||||||
executed command; null-terminated) */
|
executed command; null\-terminated) */
|
||||||
char ac_pad[\fIX\fP]; /* padding bytes */
|
char ac_pad[\fIX\fP]; /* padding bytes */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
14
man5/core.5
14
man5/core.5
|
@ -514,12 +514,12 @@ using
|
||||||
.BR coredumpctl (1):
|
.BR coredumpctl (1):
|
||||||
.PP
|
.PP
|
||||||
.EX
|
.EX
|
||||||
$ \fBcoredumpctl list | tail -5\fP
|
$ \fBcoredumpctl list | tail \-5\fP
|
||||||
Wed 2017-10-11 22:25:30 CEST 2748 1000 1000 3 present /usr/bin/sleep
|
Wed 2017\-10\-11 22:25:30 CEST 2748 1000 1000 3 present /usr/bin/sleep
|
||||||
Thu 2017-10-12 06:29:10 CEST 2716 1000 1000 3 present /usr/bin/sleep
|
Thu 2017\-10\-12 06:29:10 CEST 2716 1000 1000 3 present /usr/bin/sleep
|
||||||
Thu 2017-10-12 06:30:50 CEST 2767 1000 1000 3 present /usr/bin/sleep
|
Thu 2017\-10\-12 06:30:50 CEST 2767 1000 1000 3 present /usr/bin/sleep
|
||||||
Thu 2017-10-12 06:37:40 CEST 2918 1000 1000 3 present /usr/bin/cat
|
Thu 2017\-10\-12 06:37:40 CEST 2918 1000 1000 3 present /usr/bin/cat
|
||||||
Thu 2017-10-12 08:13:07 CEST 2955 1000 1000 3 present /usr/bin/cat
|
Thu 2017\-10\-12 08:13:07 CEST 2955 1000 1000 3 present /usr/bin/cat
|
||||||
.EE
|
.EE
|
||||||
.PP
|
.PP
|
||||||
The information shown for each core dump includes the date and time
|
The information shown for each core dump includes the date and time
|
||||||
|
@ -621,7 +621,7 @@ UID=%u GID=%g sig=%s\(dq > \e"
|
||||||
.B " /proc/sys/kernel/core_pattern"
|
.B " /proc/sys/kernel/core_pattern"
|
||||||
.RB "#" " exit"
|
.RB "#" " exit"
|
||||||
.RB "$" " sleep 100"
|
.RB "$" " sleep 100"
|
||||||
.BR "\(ha\e" " # type control-backslash"
|
.BR "\(ha\e" " # type control\-backslash"
|
||||||
Quit (core dumped)
|
Quit (core dumped)
|
||||||
.RB "$" " cat core.info"
|
.RB "$" " cat core.info"
|
||||||
argc=5
|
argc=5
|
||||||
|
|
10
man5/elf.5
10
man5/elf.5
|
@ -1871,18 +1871,18 @@ Elf64_Nhdr *note, *next_note;
|
||||||
note = memory;
|
note = memory;
|
||||||
|
|
||||||
/* If the name is defined, it follows the note. */
|
/* If the name is defined, it follows the note. */
|
||||||
name = note->n_namesz == 0 ? NULL : memory + sizeof(*note);
|
name = note\->n_namesz == 0 ? NULL : memory + sizeof(*note);
|
||||||
|
|
||||||
/* If the descriptor is defined, it follows the name
|
/* If the descriptor is defined, it follows the name
|
||||||
(with alignment). */
|
(with alignment). */
|
||||||
|
|
||||||
desc = note->n_descsz == 0 ? NULL :
|
desc = note\->n_descsz == 0 ? NULL :
|
||||||
memory + sizeof(*note) + ALIGN_UP(note->n_namesz, 4);
|
memory + sizeof(*note) + ALIGN_UP(note\->n_namesz, 4);
|
||||||
|
|
||||||
/* The next note follows both (with alignment). */
|
/* The next note follows both (with alignment). */
|
||||||
next_note = memory + sizeof(*note) +
|
next_note = memory + sizeof(*note) +
|
||||||
ALIGN_UP(note->n_namesz, 4) +
|
ALIGN_UP(note\->n_namesz, 4) +
|
||||||
ALIGN_UP(note->n_descsz, 4);
|
ALIGN_UP(note\->n_descsz, 4);
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -122,9 +122,9 @@ I just found three, from 92,
|
||||||
209.237.226.90 www.opensource.org
|
209.237.226.90 www.opensource.org
|
||||||
|
|
||||||
# The following lines are desirable for IPv6 capable hosts
|
# The following lines are desirable for IPv6 capable hosts
|
||||||
::1 localhost ip6-localhost ip6-loopback
|
::1 localhost ip6\-localhost ip6\-loopback
|
||||||
ff02::1 ip6-allnodes
|
ff02::1 ip6\-allnodes
|
||||||
ff02::2 ip6-allrouters
|
ff02::2 ip6\-allrouters
|
||||||
.EE
|
.EE
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.BR hostname (1),
|
.BR hostname (1),
|
||||||
|
|
|
@ -42,11 +42,11 @@ contents of this file:
|
||||||
.PP
|
.PP
|
||||||
.EX
|
.EX
|
||||||
$ \fBsudo cat /proc/slabinfo\fP
|
$ \fBsudo cat /proc/slabinfo\fP
|
||||||
slabinfo - version: 2.1
|
slabinfo \- version: 2.1
|
||||||
# name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> ...
|
# name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> ...
|
||||||
sigqueue 100 100 160 25 1 : tunables 0 0 0 : slabdata 4 4 0
|
sigqueue 100 100 160 25 1 : tunables 0 0 0 : slabdata 4 4 0
|
||||||
sighand_cache 355 405 2112 15 8 : tunables 0 0 0 : slabdata 27 27 0
|
sighand_cache 355 405 2112 15 8 : tunables 0 0 0 : slabdata 27 27 0
|
||||||
kmalloc-8192 96 96 8192 4 8 : tunables 0 0 0 : slabdata 24 24 0
|
kmalloc\-8192 96 96 8192 4 8 : tunables 0 0 0 : slabdata 24 24 0
|
||||||
\&...
|
\&...
|
||||||
.EE
|
.EE
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -66,7 +66,7 @@ around; details depend on the version of libc):
|
||||||
|
|
||||||
#define EMPTY 0 /* Record does not contain valid info
|
#define EMPTY 0 /* Record does not contain valid info
|
||||||
(formerly known as UT_UNKNOWN on Linux) */
|
(formerly known as UT_UNKNOWN on Linux) */
|
||||||
#define RUN_LVL 1 /* Change in system run-level (see
|
#define RUN_LVL 1 /* Change in system run\-level (see
|
||||||
\fBinit\fP(1)) */
|
\fBinit\fP(1)) */
|
||||||
#define BOOT_TIME 2 /* Time of system boot (in \fIut_tv\fP) */
|
#define BOOT_TIME 2 /* Time of system boot (in \fIut_tv\fP) */
|
||||||
#define NEW_TIME 3 /* Time after system clock change
|
#define NEW_TIME 3 /* Time after system clock change
|
||||||
|
@ -96,14 +96,14 @@ struct utmp {
|
||||||
or inittab(5) ID */
|
or inittab(5) ID */
|
||||||
char ut_user[UT_NAMESIZE]; /* Username */
|
char ut_user[UT_NAMESIZE]; /* Username */
|
||||||
char ut_host[UT_HOSTSIZE]; /* Hostname for remote login, or
|
char ut_host[UT_HOSTSIZE]; /* Hostname for remote login, or
|
||||||
kernel version for run-level
|
kernel version for run\-level
|
||||||
messages */
|
messages */
|
||||||
struct exit_status ut_exit; /* Exit status of a process
|
struct exit_status ut_exit; /* Exit status of a process
|
||||||
marked as DEAD_PROCESS; not
|
marked as DEAD_PROCESS; not
|
||||||
used by Linux init(1) */
|
used by Linux init(1) */
|
||||||
/* The ut_session and ut_tv fields must be the same size when
|
/* The ut_session and ut_tv fields must be the same size when
|
||||||
compiled 32- and 64-bit. This allows data files and shared
|
compiled 32\- and 64\-bit. This allows data files and shared
|
||||||
memory to be shared between 32- and 64-bit applications. */
|
memory to be shared between 32\- and 64\-bit applications. */
|
||||||
#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
|
#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
|
||||||
int32_t ut_session; /* Session ID (\fBgetsid\fP(2)),
|
int32_t ut_session; /* Session ID (\fBgetsid\fP(2)),
|
||||||
used for windowing */
|
used for windowing */
|
||||||
|
|
|
@ -82,7 +82,7 @@ This structure has the following form:
|
||||||
#include <aiocb.h>
|
#include <aiocb.h>
|
||||||
|
|
||||||
struct aiocb {
|
struct aiocb {
|
||||||
/* The order of these fields is implementation-dependent */
|
/* The order of these fields is implementation\-dependent */
|
||||||
|
|
||||||
int aio_fildes; /* File descriptor */
|
int aio_fildes; /* File descriptor */
|
||||||
off_t aio_offset; /* File offset */
|
off_t aio_offset; /* File offset */
|
||||||
|
@ -93,7 +93,7 @@ struct aiocb {
|
||||||
int aio_lio_opcode; /* Operation to be performed;
|
int aio_lio_opcode; /* Operation to be performed;
|
||||||
lio_listio() only */
|
lio_listio() only */
|
||||||
|
|
||||||
/* Various implementation-internal fields not shown */
|
/* Various implementation\-internal fields not shown */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Operation codes for \(aqaio_lio_opcode\(aq: */
|
/* Operation codes for \(aqaio_lio_opcode\(aq: */
|
||||||
|
@ -279,7 +279,7 @@ quitHandler(int sig)
|
||||||
static void /* Handler for I/O completion signal */
|
static void /* Handler for I/O completion signal */
|
||||||
aioSigHandler(int sig, siginfo_t *si, void *ucontext)
|
aioSigHandler(int sig, siginfo_t *si, void *ucontext)
|
||||||
{
|
{
|
||||||
if (si->si_code == SI_ASYNCIO) {
|
if (si\->si_code == SI_ASYNCIO) {
|
||||||
write(STDOUT_FILENO, "I/O completion signal received\en", 31);
|
write(STDOUT_FILENO, "I/O completion signal received\en", 31);
|
||||||
|
|
||||||
/* The corresponding ioRequest structure would be available as
|
/* The corresponding ioRequest structure would be available as
|
||||||
|
|
|
@ -1827,7 +1827,7 @@ there is one entry containing three colon-separated fields:
|
||||||
.IP
|
.IP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
hierarchy-ID:controller-list:cgroup-path
|
hierarchy\-ID:controller\-list:cgroup\-path
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.IP
|
.IP
|
||||||
|
|
|
@ -1138,8 +1138,8 @@ main(int argc, char **argv)
|
||||||
fid\->hdr.info_type == FAN_EVENT_INFO_TYPE_DFID) {
|
fid\->hdr.info_type == FAN_EVENT_INFO_TYPE_DFID) {
|
||||||
file_name = NULL;
|
file_name = NULL;
|
||||||
} else if (fid\->hdr.info_type == FAN_EVENT_INFO_TYPE_DFID_NAME) {
|
} else if (fid\->hdr.info_type == FAN_EVENT_INFO_TYPE_DFID_NAME) {
|
||||||
file_name = file_handle->f_handle +
|
file_name = file_handle\->f_handle +
|
||||||
file_handle->handle_bytes;
|
file_handle\->handle_bytes;
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr, "Received unexpected event info type.\en");
|
fprintf(stderr, "Received unexpected event info type.\en");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
|
|
|
@ -115,7 +115,7 @@ struct inotify_event {
|
||||||
uint32_t cookie; /* Unique cookie associating related
|
uint32_t cookie; /* Unique cookie associating related
|
||||||
events (for rename(2)) */
|
events (for rename(2)) */
|
||||||
uint32_t len; /* Size of \fIname\fP field */
|
uint32_t len; /* Size of \fIname\fP field */
|
||||||
char name[]; /* Optional null-terminated name */
|
char name[]; /* Optional null\-terminated name */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
|
|
|
@ -447,7 +447,7 @@ struct ip_msfilter {
|
||||||
address */
|
address */
|
||||||
struct in_addr imsf_interface; /* IP address of local
|
struct in_addr imsf_interface; /* IP address of local
|
||||||
interface */
|
interface */
|
||||||
uint32_t imsf_fmode; /* Filter-mode */
|
uint32_t imsf_fmode; /* Filter\-mode */
|
||||||
|
|
||||||
uint32_t imsf_numsrc; /* Number of sources in
|
uint32_t imsf_numsrc; /* Number of sources in
|
||||||
the following array */
|
the following array */
|
||||||
|
|
|
@ -551,15 +551,15 @@ is the following:
|
||||||
.IP
|
.IP
|
||||||
.EX
|
.EX
|
||||||
(1) (2) (3)(4) (5) (6) (7) (8) (9)
|
(1) (2) (3)(4) (5) (6) (7) (8) (9)
|
||||||
009a2028 I--Q--- 1 perm 3f010000 1000 1000 user krb_ccache:primary: 12
|
009a2028 I\-\-Q\-\-\- 1 perm 3f010000 1000 1000 user krb_ccache:primary: 12
|
||||||
1806c4ba I--Q--- 1 perm 3f010000 1000 1000 keyring _pid: 2
|
1806c4ba I\-\-Q\-\-\- 1 perm 3f010000 1000 1000 keyring _pid: 2
|
||||||
25d3a08f I--Q--- 1 perm 1f3f0000 1000 65534 keyring _uid_ses.1000: 1
|
25d3a08f I\-\-Q\-\-\- 1 perm 1f3f0000 1000 65534 keyring _uid_ses.1000: 1
|
||||||
28576bd8 I--Q--- 3 perm 3f010000 1000 1000 keyring _krb: 1
|
28576bd8 I\-\-Q\-\-\- 3 perm 3f010000 1000 1000 keyring _krb: 1
|
||||||
2c546d21 I--Q--- 190 perm 3f030000 1000 1000 keyring _ses: 2
|
2c546d21 I\-\-Q\-\-\- 190 perm 3f030000 1000 1000 keyring _ses: 2
|
||||||
30a4e0be I------ 4 2d 1f030000 1000 65534 keyring _persistent.1000: 1
|
30a4e0be I\-\-\-\-\-\- 4 2d 1f030000 1000 65534 keyring _persistent.1000: 1
|
||||||
32100fab I--Q--- 4 perm 1f3f0000 1000 65534 keyring _uid.1000: 2
|
32100fab I\-\-Q\-\-\- 4 perm 1f3f0000 1000 65534 keyring _uid.1000: 2
|
||||||
32a387ea I--Q--- 1 perm 3f010000 1000 1000 keyring _pid: 2
|
32a387ea I\-\-Q\-\-\- 1 perm 3f010000 1000 1000 keyring _pid: 2
|
||||||
3ce56aea I--Q--- 5 perm 3f030000 1000 1000 keyring _ses: 1
|
3ce56aea I\-\-Q\-\-\- 5 perm 3f030000 1000 1000 keyring _ses: 1
|
||||||
.EE
|
.EE
|
||||||
.IP
|
.IP
|
||||||
The fields shown in each line of this file are as follows:
|
The fields shown in each line of this file are as follows:
|
||||||
|
|
|
@ -164,8 +164,8 @@ lrwxrwxrwx. mnt \-> mnt:[4026531840]
|
||||||
lrwxrwxrwx. net \-> net:[4026531969]
|
lrwxrwxrwx. net \-> net:[4026531969]
|
||||||
lrwxrwxrwx. pid \-> pid:[4026531836]
|
lrwxrwxrwx. pid \-> pid:[4026531836]
|
||||||
lrwxrwxrwx. pid_for_children \-> pid:[4026531834]
|
lrwxrwxrwx. pid_for_children \-> pid:[4026531834]
|
||||||
lrwxrwxrwx. time -> time:[4026531834]
|
lrwxrwxrwx. time \-> time:[4026531834]
|
||||||
lrwxrwxrwx. time_for_children -> time:[4026531834]
|
lrwxrwxrwx. time_for_children \-> time:[4026531834]
|
||||||
lrwxrwxrwx. user \-> user:[4026531837]
|
lrwxrwxrwx. user \-> user:[4026531837]
|
||||||
lrwxrwxrwx. uts \-> uts:[4026531838]
|
lrwxrwxrwx. uts \-> uts:[4026531838]
|
||||||
.EE
|
.EE
|
||||||
|
|
|
@ -117,12 +117,12 @@ structure is a device-independent physical-layer address.
|
||||||
.EX
|
.EX
|
||||||
struct sockaddr_ll {
|
struct sockaddr_ll {
|
||||||
unsigned short sll_family; /* Always AF_PACKET */
|
unsigned short sll_family; /* Always AF_PACKET */
|
||||||
unsigned short sll_protocol; /* Physical-layer protocol */
|
unsigned short sll_protocol; /* Physical\-layer protocol */
|
||||||
int sll_ifindex; /* Interface number */
|
int sll_ifindex; /* Interface number */
|
||||||
unsigned short sll_hatype; /* ARP hardware type */
|
unsigned short sll_hatype; /* ARP hardware type */
|
||||||
unsigned char sll_pkttype; /* Packet type */
|
unsigned char sll_pkttype; /* Packet type */
|
||||||
unsigned char sll_halen; /* Length of address */
|
unsigned char sll_halen; /* Length of address */
|
||||||
unsigned char sll_addr[8]; /* Physical-layer address */
|
unsigned char sll_addr[8]; /* Physical\-layer address */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
|
@ -208,7 +208,7 @@ struct packet_mreq {
|
||||||
int mr_ifindex; /* interface index */
|
int mr_ifindex; /* interface index */
|
||||||
unsigned short mr_type; /* action */
|
unsigned short mr_type; /* action */
|
||||||
unsigned short mr_alen; /* address length */
|
unsigned short mr_alen; /* address length */
|
||||||
unsigned char mr_address[8]; /* physical-layer address */
|
unsigned char mr_address[8]; /* physical\-layer address */
|
||||||
};
|
};
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
|
|
|
@ -910,7 +910,7 @@ For example:
|
||||||
.EX
|
.EX
|
||||||
bash$ $( LD_ASSUME_KERNEL=2.2.5 ldd /bin/ls | grep libc.so | \e
|
bash$ $( LD_ASSUME_KERNEL=2.2.5 ldd /bin/ls | grep libc.so | \e
|
||||||
awk \(aq{print $3}\(aq ) | egrep \-i \(aqthreads|nptl\(aq
|
awk \(aq{print $3}\(aq ) | egrep \-i \(aqthreads|nptl\(aq
|
||||||
linuxthreads-0.10 by Xavier Leroy
|
linuxthreads\-0.10 by Xavier Leroy
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
|
|
|
@ -781,7 +781,7 @@ A process's autogroup (task group) membership can be viewed via the file
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
$ \fBcat /proc/1/autogroup\fP
|
$ \fBcat /proc/1/autogroup\fP
|
||||||
/autogroup-1 nice 0
|
/autogroup\-1 nice 0
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
@ -922,7 +922,7 @@ These patches are named:
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
patch-\fIkernelversion\fP-rt\fIpatchversion\fP
|
patch\-\fIkernelversion\fP\-rt\fIpatchversion\fP
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -87,7 +87,7 @@ utility as:
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
keyctl session
|
keyctl session
|
||||||
keyctl session - [<prog> <arg1> <arg2> ...]
|
keyctl session \- [<prog> <arg1> <arg2> ...]
|
||||||
keyctl session <name> [<prog> <arg1> <arg2> ...]
|
keyctl session <name> [<prog> <arg1> <arg2> ...]
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
|
|
|
@ -736,7 +736,7 @@ print_diag(const struct unix_diag_msg *diag, unsigned int len)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("inode=%u", diag->udiag_ino);
|
printf("inode=%u", diag\->udiag_ino);
|
||||||
|
|
||||||
if (peer)
|
if (peer)
|
||||||
printf(", peer=%u", peer);
|
printf(", peer=%u", peer);
|
||||||
|
|
|
@ -111,7 +111,7 @@ here) is the SONAME for the library:
|
||||||
.PP
|
.PP
|
||||||
.in +4n
|
.in +4n
|
||||||
.EX
|
.EX
|
||||||
libfoo.so -> libfoo.so.1 -> libfoo.so.1.12
|
libfoo.so \-> libfoo.so.1 \-> libfoo.so.1.12
|
||||||
.EE
|
.EE
|
||||||
.in
|
.in
|
||||||
.PP
|
.PP
|
||||||
|
|
Loading…
Reference in New Issue