.\" Copyright (c) 2024 DTB .\" .\" This work is licensed under CC BY-SA 4.0. To see a copy of this license, .\" visit . .TH mm 1 .SH NAME mm \(en middleman .SH SYNOPSIS mm .RB ( -aenu ) .RB ( -i .RB [ input ]) .RB ( -o .RB [ output ]) .SH DESCRIPTION Catenate input files and write them to the start of each output file or stream. .SH OPTIONS .B -a .RS Opens subsequent outputs for appending rather than updating. .RE .B -e .RS Set the output to the standard error. .RE .B -i .RS Opens a path as an input. Without any inputs specified mm will use the standard input. .RE .B -o .RS Opens a path as an output. Without any outputs specified mm will use the standard output. .RE .B -u .RS Ensures neither input or output will be buffered. .RE .B -n .RS Causes SIGINT signals to be ignored. .RE .SH DIAGNOSTICS If an output can no longer be written mm prints a diagnostic message, ceases writing to that particular output, and if there are more outputs specified, continues, eventually exiting unsuccessfully. When an error is encountered, diagnostic message is printed and the program exits with the appropriate sysexits.h(3) status. .SH BUGS Existing files are not truncated, which may lead to unexpected results. .SH RATIONALE The cat(1p) and tee(1p) programs specified in POSIX provide equivalent functionality. The separation of the two sets of functionality into separate APIs seemed unncessary. .SH COPYRIGHT Copyright (c) 2024 DTB. License AGPLv3+: GNU AGPL version 3 or later . .SH SEE ALSO cat(1p), dd(1), dj(1), tee(1p)