.\" 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 Use the standard error as an output. .RE .B -i .RS Opens a path as an input. Without any inputs specified mm will use the standard input. The standard input shall be used as an input if one or more of the input files is “-”. .RE .B -o .RS Opens a path as an output. Without any outputs specified mm will use the standard output. The standard output shall be used as an output if one or more of the output files is “-”. .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 CAVEATS Existing files are not truncated on ouput and are instead overwritten. .SH RATIONALE The cat(1p) and tee(1p) programs specified in POSIX together provide similar 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)