TALK(1)                    POSIX Programmer's Manual                   TALK(1)



PROLOG
       This manual page is part of the POSIX Programmer's Manual.  The OS
       implementation of this interface may differ (consult the corresponding
       OS manual page for details of OS behavior), or the interface may not be
       implemented on OS.

NAME
       talk -- talk to another user

SYNOPSIS
       talk address [[terminal]]

DESCRIPTION
       The talk utility is a two-way, screen-oriented communication program.

       When first invoked, talk shall send a message similar to:


           Message from <unspecified string>
           talk: connection requested by your__address
           talk: respond with: talk your__address

       to the specified address.  At this point, the recipient of the message
       can reply by typing:


           talk your__address

       Once communication is established, the two parties can type
       simultaneously, with their output displayed in separate regions of the
       screen. Characters shall be processed as follows:

        *  Typing the <alert> character shall alert the recipient's terminal.

        *  Typing <control>-L shall cause the sender's screen regions to be
           refreshed.

        *  Typing the erase and kill characters shall affect the sender's
           terminal in the manner described by the termios interface in the
           Base Definitions volume of POSIX.1-2017, Chapter 11, General
           Terminal Interface.

        *  Typing the interrupt or end-of-file characters shall terminate the
           local talk utility. Once the talk session has been terminated on
           one side, the other side of the talk session shall be notified that
           the talk session has been terminated and shall be able to do
           nothing except exit.

        *  Typing characters from LC__CTYPE classifications print or space
           shall cause those characters to be sent to the recipient's
           terminal.

        *  When and only when the stty iexten local mode is enabled, the
           existence and processing of additional special control characters
           and multi-byte or single-byte functions shall be implementation-
           defined.

        *  Typing other non-printable characters shall cause implementation-
           defined sequences of printable characters to be sent to the
           recipient's terminal.

       Permission to be a recipient of a talk message can be denied or granted
       by use of the mesg utility. However, a user's privilege may further
       constrain the domain of accessibility of other users' terminals. The
       talk utility shall fail when the user lacks appropriate privileges to
       perform the requested action.

       Certain block-mode terminals do not have all the capabilities necessary
       to support the simultaneous exchange of messages required for talk.
       When this type of exchange cannot be supported on such terminals, the
       implementation may support an exchange with reduced levels of
       simultaneous interaction or it may report an error describing the
       terminal-related deficiency.

OPTIONS
       None.

OPERANDS
       The following operands shall be supported:

       address   The recipient of the talk session. One form of address is the
                 <user name>, as returned by the who utility. Other address
                 formats and how they are handled are unspecified.

       terminal  If the recipient is logged in more than once, the terminal
                 argument can be used to indicate the appropriate terminal
                 name. If terminal is not specified, the talk message shall be
                 displayed on one or more accessible terminals in use by the
                 recipient. The format of terminal shall be the same as that
                 returned by the who utility.

STDIN
       Characters read from standard input shall be copied to the recipient's
       terminal in an unspecified manner. If standard input is not a terminal,
       talk shall write a diagnostic message and exit with a non-zero status.

INPUT FILES
       None.

ENVIRONMENT VARIABLES
       The following environment variables shall affect the execution of talk:

       LANG      Provide a default value for the internationalization
                 variables that are unset or null. (See the Base Definitions
                 volume of POSIX.1-2017, Section 8.2, Internationalization
                 Variables for the precedence of internationalization
                 variables used to determine the values of locale categories.)

       LC__ALL    If set to a non-empty string value, override the values of
                 all the other internationalization variables.

       LC__CTYPE  Determine the locale for the interpretation of sequences of
                 bytes of text data as characters (for example, single-byte as
                 opposed to multi-byte characters in arguments and input
                 files). If the recipient's locale does not use an LC__CTYPE
                 equivalent to the sender's, the results are undefined.

       LC__MESSAGES
                 Determine the locale that should be used to affect the format
                 and contents of diagnostic messages written to standard error
                 and informative messages written to standard output.

       NLSPATH   Determine the location of message catalogs for the processing
                 of LC__MESSAGES.

       TERM      Determine the name of the invoker's terminal type. If this
                 variable is unset or null, an unspecified default terminal
                 type shall be used.

ASYNCHRONOUS EVENTS
       When the talk utility receives a SIGINT signal, the utility shall
       terminate and exit with a zero status. It shall take the standard
       action for all other signals.

STDOUT
       If standard output is a terminal, characters copied from the
       recipient's standard input may be written to standard output. Standard
       output also may be used for diagnostic messages. If standard output is
       not a terminal, talk shall exit with a non-zero status.

STDERR
       None.

OUTPUT FILES
       None.

EXTENDED DESCRIPTION
       None.

EXIT STATUS
       The following exit values shall be returned:

        0    Successful completion.

       >0    An error occurred or talk was invoked on a terminal incapable of
             supporting it.

CONSEQUENCES OF ERRORS
       Default.

       The following sections are informative.

APPLICATION USAGE
       Because the handling of non-printable, non-<space> characters is tied
       to the stty description of iexten, implementation extensions within the
       terminal driver can be accessed.  For example, some implementations
       provide line editing functions with certain control character
       sequences.

EXAMPLES
       None.

RATIONALE
       The write utility was included in this volume of POSIX.1-2017 since it
       can be implemented on all terminal types. The talk utility, which
       cannot be implemented on certain terminals, was considered to be a
       ``better'' communications interface. Both of these programs are in
       widespread use on historical implementations.  Therefore, both
       utilities have been specified.

       All references to networking abilities (talking to a user on another
       system) were removed as being outside the scope of this volume of
       POSIX.1-2017.

       Historical BSD and System V versions of talk terminate both of the
       conversations when either user breaks out of the session. This can lead
       to adverse consequences if a user unwittingly continues to enter text
       that is interpreted by the shell when the other terminates the session.
       Therefore, the version of talk specified by this volume of POSIX.1-2017
       requires both users to terminate their end of the session explicitly.

       Only messages sent to the terminal of the invoking user can be
       internationalized in any way:

        *  The original ``Message from <unspecified string> ...''  message
           sent to the terminal of the recipient cannot be internationalized
           because the environment of the recipient is as yet inaccessible to
           the talk utility. The environment of the invoking party is
           irrelevant.

        *  Subsequent communication between the two parties cannot be
           internationalized because the two parties may specify different
           languages in their environment (and non-portable characters cannot
           be mapped from one language to another).

        *  Neither party can be required to communicate in a language other
           than C and/or the one specified by their environment because
           unavailable terminal hardware support (for example, fonts) may be
           required.

       The text in the STDOUT section reflects the usage of the verb
       ``display'' in this section; some talk implementations actually use
       standard output to write to the terminal, but this volume of
       POSIX.1-2017 does not require that to be the case.

       The format of the terminal name is unspecified, but the descriptions of
       ps, talk, who, and write require that they all use or accept the same
       format.

       The handling of non-printable characters is partially implementation-
       defined because the details of mapping them to printable sequences is
       not needed by the user. Historical implementations, for security
       reasons, disallow the transmission of non-printable characters that may
       send commands to the other terminal.

FUTURE DIRECTIONS
       None.

SEE ALSO
       mesg, stty, who, write

       The Base Definitions volume of POSIX.1-2017, Chapter _8, Environment
       Variables, Chapter 11, General Terminal Interface

COPYRIGHT
       Portions of this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1-2017, Standard for Information Technology --
       Portable Operating System Interface (POSIX), The Open Group Base
       Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the
       Institute of Electrical and Electronics Engineers, Inc and The Open
       Group.  In the event of any discrepancy between this version and the
       original IEEE and The Open Group Standard, the original IEEE and The
       Open Group Standard is the referee document. The original Standard can
       be obtained online at http://www.opengroup.org/unix/online.html .

       Any typographical or formatting errors that appear in this page are
       most likely to have been introduced during the conversion of the source
       files to man page format. To report such errors, see
       https://www.kernel.org/doc/man-pages/reporting_bugs.html .



IEEE/The Open Group                  2017                              TALK(1)
