This position can differ from the real position of the underlying implementation in case of buffered streams. Touch allows to synchronize both positions. Trunc truncates the length of the stream to cnt . Thus all bytes with addresses greater or equal to cnt are deleted. This call does not modify the current position.
Stream buffering allows to undo read operations.
At least one successful undo operation is guaranteed. Further undo operations require seek ability. Back decrements the current position by one. Insert works like Back but causes byte to be returned on next read operation. Flush and Touch synchronize buffered streams with the underlying implementation.