1 ## our_shell:ysh
2
3 #### read --raw-line, --all, --num-bytes preserve NUL bytes
4
5 proc raw-line {
6 read --raw-line (&s)
7 echo len=${#s}
8 write --end '' $s | od -A n -t x1
9 }
10
11 proc all {
12 read --all (&s)
13 echo len=${#s}
14 write --end '' $s | od -A n -t x1
15 }
16
17 proc num-bytes {
18 read --num-bytes 3 (&s)
19 echo len=${#s}
20 write --end '' $s | od -A n -t x1
21 }
22
23 printf '.\000.' | raw-line
24 printf '.\000.' | all
25 printf '.\000.' | num-bytes
26
27 ## STDOUT:
28 len=3
29 2e 00 2e
30 len=3
31 2e 00 2e
32 len=3
33 2e 00 2e
34 ## END
35