forked from bonsai/harakit
		
	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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user