cstream is a general-purpose stream-handling tool like UNIX' dd,
usually used in commandline-constructed pipes.
- Sane commandline switch syntax.
- Exact throughput limiting, on the incoming side. Timing variance in
previous reads are counterbalanced in the following reads.
- Precise throughput reporting. Either at the end of the transmission
or everytime SIGUSR1 is received. Quite useful to ask lengthy
operations how much data has been transferred yet, i.e. when
writing tapes. Reports are done in bytes/sec and if appropriate in
KB/sec or MB/sec, where 1K = 1024.
- SIGUSR2 causes a clean shutdown before EOF on input, timing
information is displayed.
- Build-in support to write its PID to a file, for painless sending of
- Build-in support for fifos. Example usage is a 'pseudo-device',
something that sinks or delivers data at an appropriate rate, but
looks like a file, i.e. if you test soundcard software. See the
manpage for examples.
- Built-in data creation and sink, no more redirection of /dev/null
and /dev/zero. These special devices speed varies greatly among
operating systems, redirecting from it isn't appropriate
benchmarking and a waste of resources anyway.
- Accepts 'k', 'm' and 'g' character after number for "kilo, mega, giga"
bytes for overall data size limit.
- "gcc -Wall" clean source code, serious effort taken to avoid
undefined behaviour in ANSI C or POSIX, except long long is
required. Limiting and reporting works on data amounts > 4 GB.