Null flush is an option (
-z) to most Apertium programs (and programs compatible with Apertium stream format) that flushes the output buffer upon receiving the
\0 character instead of on end-of-file. This allows programs which call Apertium externally to keep a translator online, meaning they can avoid startup time for every translation.
To see how to use this in practice, read Daemon.
If you want to test that a pipe handles null flush correctly, you can use something like:
cat <(echo -e "this here[\n]\0is a[\n]\0little[\n]\0flushing test[\n]\0") /dev/stdin | your -z | pipe -z | goes -z | here -z
where \0 are the nulls, and the  are there because many of the tools expect a [\n] at the end of a stream (all the deformatters put this at the end of the stream, try echo bunnymen|apertium-destxt). Use Ctrl-D (^D) to close the input that cat keeps open.
 Other flush signals
Note that in CG stream format,
vislcg3 uses the string "<STREAMCMD:FLUSH>" instead of a NUL byte: http://beta.visl.sdu.dk/cg3/single/#cmd-flush
(cg-proc, however, uses the NUL byte like the other programs used in Apertium).