diff options
Diffstat (limited to 'slowbaud.1')
-rw-r--r-- | slowbaud.1 | 49 |
1 files changed, 38 insertions, 11 deletions
@@ -38,28 +38,49 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] . .SH SYNOPSIS .sp -\fBslowbaud\fP \fI<bits\-per\-sec>\fP [\fI<file>\fP ...] +\fBslowbaud\fP [\fI<bits\-per\-sec>\fP] [\fI<file>\fP ...] .sp -\fBslowbaud\fP \fI<bits\-per\-sec>\fP \fB\-c\fP [\fI<command>\fP [\fI<arg>\fP ...]] +\fBslowbaud\fP [\fI<bits\-per\-sec>\fP] \fB\-c\fP [\fI<command>\fP [\fI<arg>\fP ...]] +.sp +\fBslowbaud\fP [\fI<bits\-per\-sec>\fP] \fB\-e\fP \fI<string>\fP [\fI<string>\fP ...] .SH DESCRIPTION .sp slowbaud by default acts as a filter, or like the \fBcat(1)\fP command. It reads files or its standard input, and writes the contents unmodified to standard output... but slowly, at the given bits\-per\-second rate. -Output is unbuffered. +Input and output are unbuffered. .sp -With the \fB\-c\fP option, it creates a pseudo\-tty and runs the given command -in it (or an interactive shell, if no command is given). +slowbaud can also act like \fBecho(1)\fP (the \fB\-e\fP option), or run an +interactive command (the \fB\-c\fP option). .sp -The \fI<bits\-per\-sec>\fP argument supports a range of 1 to 500000. Timing -accuracy depends on your OS, kernel config (HZ and/or NO_HZ on Linux), -and system load. No "fancy" techniques like realtime scheduling -or hardware event timers are used. At bitrates up to 57600, on a -typical unloaded Linux system, the timing should be around 99.7% -accurate. +The \fI<bits\-per\-sec>\fP argument is optional. If it\(aqs not given, the +bit rate will be set from \fBSLOWBAUD_BPS\fP in the environment, or a +built\-in default of 2400 if not set. +.SH OPTIONS +.INDENT 0.0 +.TP +.B \fBbits\-per\-sec\fP +The bit ("baud") rate to simulate. This must be the first argument. +slowbaud assumes that if the first argument is a number, it\(aqs the bit rate. +If you\(aqre trying to pass a filename that consists only of digits, give +\fB\-\-\fP as the first argument, or use e.g. \fI\&./filename\fP\&. +.TP +.B \fB\-e\fP +Echo mode. Prints all further arguments as strings to stdout, separated +by a single space, at the given bit rate. Does not support backslash\-escapes, or any of +the options of the regular \fBecho\fP command. +.TP +.B \fB\-c\fP +Command mode. Next argument (if present) is the command to run, any remaining arguments +become arguments to the command. With no arguments after \fB\-c\fP, a shell is spawned. +This creates a pseudo\-tty, so the command can be interactive. +.UNINDENT .SH ENVIRONMENT .INDENT 0.0 .TP +.B \fBSLOWBAUD_BPS\fP +Can be used to set the bit rate, when no \fI<bits\-per\-sec>\fP argument is used. +.TP .B \fBSLOWBAUD_DEBUG\fP Set this (to any value) in the environment to see verbose debug output on stderr, including timing accuracy stats. @@ -80,6 +101,12 @@ the child process couldn\(aqt be spawned (e.g. command not found). Of course, the child process could also exit with status 127... .SH NOTES .sp +The bitrate has a range of 1 to 500000. Timing accuracy depends on +your OS, kernel config (HZ and/or NO_HZ on Linux), and system load. No +"fancy" techniques like realtime scheduling or hardware event timers +are used. At bitrates up to 57600, on a typical unloaded Linux system, +the timing should be at least 99.7% accurate. +.sp We can\(aqt really insert a delay between the bits of a byte, since I/O is done with byte granularity. For calculation purposes, \fI<bits\-per\-sec>\fP is divided by 10 to get bytes per second. This |