1TALK(1P) POSIX Programmer's Manual TALK(1P)
2
3
4
6 This manual page is part of the POSIX Programmer's Manual. The Linux
7 implementation of this interface may differ (consult the corresponding
8 Linux manual page for details of Linux behavior), or the interface may
9 not be implemented on Linux.
10
12 talk — talk to another user
13
15 talk address [terminal]
16
18 The talk utility is a two-way, screen-oriented communication program.
19
20 When first invoked, talk shall send a message similar to:
21
22
23 Message from <unspecified string>
24 talk: connection requested by your_address
25 talk: respond with: talk your_address
26
27 to the specified address. At this point, the recipient of the message
28 can reply by typing:
29
30
31 talk your_address
32
33 Once communication is established, the two parties can type simultane‐
34 ously, with their output displayed in separate regions of the screen.
35 Characters shall be processed as follows:
36
37 * Typing the <alert> character shall alert the recipient's terminal.
38
39 * Typing <control>‐L shall cause the sender's screen regions to be
40 refreshed.
41
42 * Typing the erase and kill characters shall affect the sender's ter‐
43 minal in the manner described by the termios interface in the Base
44 Definitions volume of POSIX.1‐2017, Chapter 11, General Terminal
45 Interface.
46
47 * Typing the interrupt or end-of-file characters shall terminate the
48 local talk utility. Once the talk session has been terminated on
49 one side, the other side of the talk session shall be notified that
50 the talk session has been terminated and shall be able to do noth‐
51 ing except exit.
52
53 * Typing characters from LC_CTYPE classifications print or space
54 shall cause those characters to be sent to the recipient's termi‐
55 nal.
56
57 * When and only when the stty iexten local mode is enabled, the exis‐
58 tence and processing of additional special control characters and
59 multi-byte or single-byte functions shall be implementation-
60 defined.
61
62 * Typing other non-printable characters shall cause implementation-
63 defined sequences of printable characters to be sent to the recipi‐
64 ent's terminal.
65
66 Permission to be a recipient of a talk message can be denied or granted
67 by use of the mesg utility. However, a user's privilege may further
68 constrain the domain of accessibility of other users' terminals. The
69 talk utility shall fail when the user lacks appropriate privileges to
70 perform the requested action.
71
72 Certain block-mode terminals do not have all the capabilities necessary
73 to support the simultaneous exchange of messages required for talk.
74 When this type of exchange cannot be supported on such terminals, the
75 implementation may support an exchange with reduced levels of simulta‐
76 neous interaction or it may report an error describing the terminal-
77 related deficiency.
78
80 None.
81
83 The following operands shall be supported:
84
85 address The recipient of the talk session. One form of address is the
86 <user name>, as returned by the who utility. Other address
87 formats and how they are handled are unspecified.
88
89 terminal If the recipient is logged in more than once, the terminal
90 argument can be used to indicate the appropriate terminal
91 name. If terminal is not specified, the talk message shall be
92 displayed on one or more accessible terminals in use by the
93 recipient. The format of terminal shall be the same as that
94 returned by the who utility.
95
97 Characters read from standard input shall be copied to the recipient's
98 terminal in an unspecified manner. If standard input is not a terminal,
99 talk shall write a diagnostic message and exit with a non-zero status.
100
102 None.
103
105 The following environment variables shall affect the execution of talk:
106
107 LANG Provide a default value for the internationalization vari‐
108 ables that are unset or null. (See the Base Definitions vol‐
109 ume of POSIX.1‐2017, Section 8.2, Internationalization Vari‐
110 ables for the precedence of internationalization variables
111 used to determine the values of locale categories.)
112
113 LC_ALL If set to a non-empty string value, override the values of
114 all the other internationalization variables.
115
116 LC_CTYPE Determine the locale for the interpretation of sequences of
117 bytes of text data as characters (for example, single-byte as
118 opposed to multi-byte characters in arguments and input
119 files). If the recipient's locale does not use an LC_CTYPE
120 equivalent to the sender's, the results are undefined.
121
122 LC_MESSAGES
123 Determine the locale that should be used to affect the format
124 and contents of diagnostic messages written to standard error
125 and informative messages written to standard output.
126
127 NLSPATH Determine the location of message catalogs for the processing
128 of LC_MESSAGES.
129
130 TERM Determine the name of the invoker's terminal type. If this
131 variable is unset or null, an unspecified default terminal
132 type shall be used.
133
135 When the talk utility receives a SIGINT signal, the utility shall ter‐
136 minate and exit with a zero status. It shall take the standard action
137 for all other signals.
138
140 If standard output is a terminal, characters copied from the recipi‐
141 ent's standard input may be written to standard output. Standard output
142 also may be used for diagnostic messages. If standard output is not a
143 terminal, talk shall exit with a non-zero status.
144
146 None.
147
149 None.
150
152 None.
153
155 The following exit values shall be returned:
156
157 0 Successful completion.
158
159 >0 An error occurred or talk was invoked on a terminal incapable of
160 supporting it.
161
163 Default.
164
165 The following sections are informative.
166
168 Because the handling of non-printable, non-<space> characters is tied
169 to the stty description of iexten, implementation extensions within the
170 terminal driver can be accessed. For example, some implementations
171 provide line editing functions with certain control character
172 sequences.
173
175 None.
176
178 The write utility was included in this volume of POSIX.1‐2017 since it
179 can be implemented on all terminal types. The talk utility, which can‐
180 not be implemented on certain terminals, was considered to be a ``bet‐
181 ter'' communications interface. Both of these programs are in wide‐
182 spread use on historical implementations. Therefore, both utilities
183 have been specified.
184
185 All references to networking abilities (talking to a user on another
186 system) were removed as being outside the scope of this volume of
187 POSIX.1‐2017.
188
189 Historical BSD and System V versions of talk terminate both of the con‐
190 versations when either user breaks out of the session. This can lead to
191 adverse consequences if a user unwittingly continues to enter text that
192 is interpreted by the shell when the other terminates the session.
193 Therefore, the version of talk specified by this volume of POSIX.1‐2017
194 requires both users to terminate their end of the session explicitly.
195
196 Only messages sent to the terminal of the invoking user can be interna‐
197 tionalized in any way:
198
199 * The original ``Message from <unspecified string> ...'' message
200 sent to the terminal of the recipient cannot be internationalized
201 because the environment of the recipient is as yet inaccessible to
202 the talk utility. The environment of the invoking party is irrele‐
203 vant.
204
205 * Subsequent communication between the two parties cannot be interna‐
206 tionalized because the two parties may specify different languages
207 in their environment (and non-portable characters cannot be mapped
208 from one language to another).
209
210 * Neither party can be required to communicate in a language other
211 than C and/or the one specified by their environment because
212 unavailable terminal hardware support (for example, fonts) may be
213 required.
214
215 The text in the STDOUT section reflects the usage of the verb ``dis‐
216 play'' in this section; some talk implementations actually use standard
217 output to write to the terminal, but this volume of POSIX.1‐2017 does
218 not require that to be the case.
219
220 The format of the terminal name is unspecified, but the descriptions of
221 ps, talk, who, and write require that they all use or accept the same
222 format.
223
224 The handling of non-printable characters is partially implementation-
225 defined because the details of mapping them to printable sequences is
226 not needed by the user. Historical implementations, for security rea‐
227 sons, disallow the transmission of non-printable characters that may
228 send commands to the other terminal.
229
231 None.
232
234 mesg, stty, who, write
235
236 The Base Definitions volume of POSIX.1‐2017, Chapter 8, Environment
237 Variables, Chapter 11, General Terminal Interface
238
240 Portions of this text are reprinted and reproduced in electronic form
241 from IEEE Std 1003.1-2017, Standard for Information Technology -- Por‐
242 table Operating System Interface (POSIX), The Open Group Base Specifi‐
243 cations Issue 7, 2018 Edition, Copyright (C) 2018 by the Institute of
244 Electrical and Electronics Engineers, Inc and The Open Group. In the
245 event of any discrepancy between this version and the original IEEE and
246 The Open Group Standard, the original IEEE and The Open Group Standard
247 is the referee document. The original Standard can be obtained online
248 at http://www.opengroup.org/unix/online.html .
249
250 Any typographical or formatting errors that appear in this page are
251 most likely to have been introduced during the conversion of the source
252 files to man page format. To report such errors, see https://www.ker‐
253 nel.org/doc/man-pages/reporting_bugs.html .
254
255
256
257IEEE/The Open Group 2017 TALK(1P)