file: &errout
file: &input
file: &output
file: file(/dev/null)
file: file(/etc/motd)

aaa
bbbb
ccccc
dddddd
eeeeeee
ffffffff
ggggggggg
hhhhhhhhhh

flush /etc/motd: file(/etc/motd)
close /etc/motd: file(/etc/motd)
close /etc/motd: file(/etc/motd)
flush /etc/motd: file(/etc/motd)

flush /dev/null: file(/dev/null)
close /dev/null: file(/dev/null)
close /dev/null: file(/dev/null)
flush /dev/null: file(/dev/null)

read  /dev/null:	
   !f:		 
   read/!f:	
   reads():	

write tmp1,w:	 follow the yellow brick road : 30
read  tmp1:	 follow the yellow brick road
   !f:		 follow the yellow brick road 
   read/!f:	 follow the yellow brick road
   reads():	 follo w.the .yell ow.br ick.r oad.

write tmp1,w:	 shorter file : 14
read  tmp1:	 shorter file
   !f:		 shorter file 
   read/!f:	 shorter file
   reads():	 short er.fi le.

write tmp1,a:	 gets extended : 28
read  tmp1:	 shorter file gets extended
   !f:		 shorter file gets extended 
   read/!f:	 shorter file gets extended
   reads():	 short er.fi le.ge ts.ex tende d.

write tmp1,rw:	 changed : 9
read  tmp1:	 changed file gets extended
   !f:		 changed file gets extended 
   read/!f:	 changed file gets extended
   reads():	 chang ed.fi le.ge ts.ex tende d.

write tmp1,b:	 mode b  : 8
read  tmp1:	 mode b  file gets extended
   !f:		 mode b  file gets extended 
   read/!f:	 mode b  file gets extended
   reads():	 mode. b..fi le.ge ts.ex tende d.

write tmp1,crw:	 cleared anew : 14
read  tmp1:	 cleared anew
   !f:		 cleared anew 
   read/!f:	 cleared anew
   reads():	 clear ed.an ew.
read  tmp2:	 cleared anew
   !f:		 cleared anew 
   read/!f:	 cleared anew
   reads():	 clear ed.an ew.

file(tmp1)
file(tmp2)
>stdout>stdout>stdout

>stdout

read  tmp1:	 >1a>1b>1c  >1d  >1e>1f
   !f:		 >1a>1b>1c  >1d  >1e>1f 
   read/!f:	 >1a>1b>1c  >1d  >1e>1f
   reads():	 >1a>1 b>1c. .>1d. .>1e> 1f.
read  tmp2:	 >2a>2b >2c >2d  >2e>2f
   !f:		 >2a>2b >2c >2d  >2e>2f 
   read/!f:	 >2a>2b >2c >2d  >2e>2f
   reads():	 >2a>2 b.>2c .>2d. .>2e> 2f.

abcdef
ghi
jklmno
pqr
stu
vwxyz

$ echo hello world
hello world
$ ls io.[ids][tca][dnt]
io.dat
io.icn
io.std

file(echo hello world)
> hello world

file(sed 's/^/=()= /' io.icn)
> =()= #SRC: JCON
> =()= 
> =()= #  I/O test -- writes ./tmp1 and ./tmp2 as well as stdout
> =()= 
> =()= procedure main()
> =()=    local L, f, m, n, t1, t2
> =()= 
> =()=    L := [&input, &output, &errout,
> =()=    	m := open("/etc/motd") | stop("no /etc/motd"),
> =()= 	n := open("/dev/null", "w") | stop("no /dev/null")]

file(ls io.i?n io.d?t io.s?d)
> io.dat
> io.icn
> io.std

file(tr aeiou oaeui)
--- closing output pipe
unca ipun o medneght draory
twu ruods devargad en o yalluw wuud
ond tha muma roths uitgroba
--- done closing output pipe
