talk - talk to another user
talk address [terminal]
The talk utility is a two-way, screen-oriented communication program.
When first invoked, talk sends a message similar to:to the specified address. At this point, the recipient of the message can reply by typing:
Message from <unspecified string> talk: connection requested by your_address talk: respond with: talk your_address
Once communication is established, the two parties can type simultaneously, with their output displayed in separate regions of the screen. Characters are processed as follows:
- Typing the alert character will alert the recipient's terminal.
- Typing <control>-L will cause the sender's screen regions to be refreshed.
- Typing the erase and kill characters will affect the sender's terminal in the manner described by the termios interface in the XBD specification, General Terminal Interface .
- Typing the interrupt or end-of-file characters will terminate the local talk utility. Once the talk session has been terminated on one side, the other side of the talk session will be notified that the talk session has been terminated and will be able to do nothing except exit.
- Typing characters from LC_CTYPE classifications print or space will 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 is implementation-dependent.
- Typing other non-printable characters will cause implementation-dependent 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 will fail when the user lacks the 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.
The following operands are supported:
- 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.
- 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 will be displayed on one or more accessible terminals in use by the recipient. The format of terminal will be the same as that returned by the who utility.
Characters read from standard input will be copied to the recipient's terminal in an unspecified manner. If standard input is not a terminal, talk will write a diagnostic message and exit with a non-zero status.
The following environment variables affect the execution of talk:
- Provide a default value for the internationalisation variables that are unset or null. If LANG is unset or null, the corresponding value from the implementation-dependent default locale will be used. If any of the internationalisation variables contains an invalid setting, the utility will behave as if none of the variables had been defined.
- If set to a non-empty string value, override the values of all the other internationalisation variables.
- Determine the locale for the interpretation of sequences of bytes of text data as characters (for example, single- 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.
- 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.
- Determine the location of message catalogues for the processing of LC_MESSAGES .
- Determine the name of the invoker's terminal type. If this variable is unset or null, an unspecified default terminal type will be used.
When the talk utility receives a SIGINT signal, the utility will terminate and exit with a zero status. It will take the standard action for all other signals.
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 will exit with a non-zero status.
The following exit values are returned:
- Successful completion.
- An error occurred or talk was invoked on a terminal incapable of supporting it.
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.
mesg, who, write, the XBD specification, General Terminal Interface .