vipsi		Stream				default setting
-----------	-------------------	----------------------------------------
write		Write(ptr,n)		blocking, !convert (binär)
read		Read(ptr,n)			blocking, !convert (binär), !echo, !stop_on_ctl

put			PutString(txt)		blocking, convert
get			GetString			blocking, convert, stop_on_nl, !store_ctl, tty:editor+echo
getchar		GetChar				blocking, convert, !echo

input		Input(history)		blocking, convert, stop_on_nl, !store_ctl, tty:editor+echo+vorgabe+history



oldvalue = ioctl ( [#stream,] cmd [= newvalue] )
ioctl [#stream,] cmd [= newvalue]

	get type					all: "tty", "file" etc.
	conversion type				put: get: getchar: input: "utf-8", "mac_roman" etc.
	line_break					nl:  nl, cr, cr+nl
	blocking/timeout			all: per_char_timeout  ((separate timeout values for each function?))
	
	stop_on nl					get: stop input on cr/lf/ff/eof		tty: cr/eof
	stop_on tab					get: stop input on cr/lf/ff/eof/tab	tty: cr/eof/tab
	stop_on ctl					get: stop input on any ctl code		tty: no editor!
	store_ctl on/off			get: store final ctl code in input string?

	fpos						file: get position / pipe: byte count / tty: print position
	flen						file: file length
	truncate					file: truncate at fpos
	rewind						all:  set fpos(0)
	append						all:  set fpos(flen)
	clear						file: rewind&truncate / tty: clear screen

	hpos						tty:
	vpos
	width
	height

	get in_avail				all:
	get out_free
	flush output
	drain input
	
	get error					all:
	clear error

in:
blocking		task hängt, bis genügend daten angekommen
timeout			blocking, nach timeout rückgabe der bisherigen daten

out:
blocking		task hängt, bis daten geschrieben
timeout			blocking, aber abbruch nach timeout
	
nonblocking in		aufruf kehrt sofort zurück, ende der eingabe muss anderweitig erfragt werden
nonblocking out		aufruf kehrt sofort zurück, schreiberfolg kann nicht garantiert werden






