cstream is a general-purpose stream-handling tool like UNIX' dd, usually used in commandline-constructed pipes. Featues: 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 opertions 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 informating is displayed. Build-in support to write its PID to a file, for painless sending of these signals. 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 amoung 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. cstream was written by Martin Cracauer in 1998. For updates and more in- formation see http://www.cons.org/cracauer/cstream.html