dj.1: elaborate on skip/seek behavior, provide another example
This commit is contained in:
parent
2167f35f58
commit
adda0d9580
65
docs/dj.1
65
docs/dj.1
@ -4,7 +4,7 @@
|
||||
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
|
||||
.\" visit <http://creativecommons.org/licenses/by-sa/4.0/>.
|
||||
.\"
|
||||
.TH DJ 1 2024-06-29 "Harakit X.X.X"
|
||||
.TH DJ 1 2024-07-03 "Harakit X.X.X"
|
||||
.SH NAME
|
||||
dj \(en disk jockey
|
||||
.\"
|
||||
@ -34,10 +34,17 @@ respectively. This language is inherited from the
|
||||
.BR dd (1p)
|
||||
utility and used here to decrease ambiguity.
|
||||
|
||||
When seeking or skipping to a byte, writing or reading starts at the byte
|
||||
immediately subsequent to the specified byte. Seeks and skips aren\(cqt counted
|
||||
in the output statistics because they're guaranteed to succeed (or the utility
|
||||
will exit unsuccessfully).
|
||||
The offset used when skipping or seeking refers to how many bytes are skipped
|
||||
or sought. Running
|
||||
.BR dj (1)
|
||||
with a skip offset of 1 skips one byte into the input and reads from the second
|
||||
byte onwards. A programmer may think of a file as a zero-indexed array of
|
||||
bytes; in this analogy, the offset given is the index of the byte at which to
|
||||
start reading or writing.
|
||||
|
||||
Seeks and skips aren\(cqt counted in the output statistics because they're
|
||||
guaranteed to succeed (or the utility will exit unsuccessfully, before it has
|
||||
written any data).
|
||||
.\"
|
||||
.SH OPTIONS
|
||||
|
||||
@ -82,6 +89,54 @@ input file is \(lq-\(rq.
|
||||
The standard output shall be used as an output if no inputs are specified or if
|
||||
the output file is \(lq-\(rq.
|
||||
.\"
|
||||
.SH EXAMPLES
|
||||
|
||||
The following
|
||||
.BR sh (1p)
|
||||
line:
|
||||
|
||||
.RS
|
||||
printf 'Hello, world!\(rsn' | dj -c 1 -b 7 -s 7 2>/dev/null
|
||||
.RE
|
||||
|
||||
Produces the following output:
|
||||
|
||||
.RS
|
||||
world!
|
||||
.RE
|
||||
|
||||
The following
|
||||
.BR sh (1p)
|
||||
lines run sequentially:
|
||||
|
||||
.RS
|
||||
tr '\(rs0' 0 </dev/zero | dj -c 1 -b 6 -o hello.txt
|
||||
|
||||
tr '\(rs0' H </dev/zero | dj -c 1 -b 1 -o hello.txt
|
||||
|
||||
tr '\(rs0' e </dev/zero | dj -c 1 -b 1 -o hello.txt -S 1
|
||||
|
||||
tr '\(rs0' l </dev/zero | dj -c 1 -b 2 -o hello.txt -S 2
|
||||
|
||||
tr '\(rs0' o </dev/zero | dj -c 1 -b 1 -o hello.txt -S 4
|
||||
|
||||
tr '\(rs0' '\(rsn' </dev/zero | dj -c 1 -b 1 -o hello.txt -S 5
|
||||
|
||||
dj -i hello.txt
|
||||
.RE
|
||||
|
||||
Produce the following output:
|
||||
|
||||
.RS
|
||||
Hello
|
||||
.RE
|
||||
|
||||
It may be particularly illuminating to print the contents of the example
|
||||
.B hello.txt
|
||||
after each
|
||||
.BR dj (1)
|
||||
invocation.
|
||||
.\"
|
||||
.SH DIAGNOSTICS
|
||||
|
||||
On a partial or empty read, a diagnostic message is printed. Then, the program
|
||||
|
Loading…
Reference in New Issue
Block a user