=head1 NAME
aa-ctty - Helper for execline script to set controlling terminal
=head1 SYNOPSIS
B<aa-ctty> [B<-D>] [B<-O> I<FILE|FD>] [B<-f> I<FD>] [B<-s>] I<PROG...>
=head1 OPTIONS
=over
=item B<-D, --double-output>
Enable double-output mode. Instead of using stdout for regular output, and
stderr for warnings and errors, everything is sent both to stdout and stderr.
This is intended to redirect stderr to a log file, so full output can be both
shown on console and logged.
B<Deprecation warning:> Note that this option has been deprecated and will be
removed in the next version; You should use B<--log-file> instead.
=item B<-f, --fd> I<FD>
Use file descriptor I<FD> as terminal; Defaults to stdin (0).
=item B<-h, --help>
Show help screen and exit.
=item B<-O, --log-file> I<FILE|FD>
Will duplicate all output (everything written to stdout or stderr) to the given
file or file descriptor. I<FILE|FD> can either be a (previously opened for
writing) file descriptor (must be > 2), or a file which will then be opened in
append mode.
=item B<-s, --steal>
Steal controlling terminal if already controlling terminal of a different
session.
=item B<-V, --version>
Show version information and exit.
=back
=head1 DESCRIPTION
B<aa-ctty>(1) will set the controlling terminal (via ioctl(TIOCSCTTY)) to that
of the device open as file descriptor 0, or specified with B<--fd>. In typical
B<execline> fashion, it then executes into the rest of its command line.
If the ioctl call fails, a warning is printed and it still executes into the
rest of its command line. If it fails to do so, it returns 111.
=head1 RETURN CODES
Return codes are somewhat unified inside B<anopa>. Odd return codes represent
fatal errors, and are detailled in B<anopa-rc>(1)
B<aa-ctty>(1) does not have even return codes.