ttyname, ttyname_r — return name of a terminal
#include <unistd.h>
char
*ttyname( |
int fd) ; |
int
ttyname_r( |
int fd, |
char *buf, | |
size_t buflen) ; |
The function ttyname
()
returns a pointer to the null-terminated pathname of the
terminal device that is open on the file descriptor
fd
, or NULL on error
(for example, if fd
is not connected to a terminal). The return value may point
to static data, possibly overwritten by the next call. The
function ttyname_r
() stores
this pathname in the buffer buf
of length buflen
.
The function ttyname
()
returns a pointer to a pathname on success. On error, NULL is
returned, and errno
is set to
indicate the error. The function ttyname_r
() returns 0 on success, and an
error number upon error.
Bad file descriptor.
fd
refers to
a slave pseudoterminal device but the corresponding
pathname could not be found (see NOTES).
fd
does not
refer to a terminal device.
(ttyname_r
())
buflen
was too
small to allow storing the pathname.
For an explanation of the terms used in this section, see attributes(7).
Interface | Attribute | Value |
ttyname () |
Thread safety | MT-Unsafe race:ttyname |
ttyname_r () |
Thread safety | MT-Safe |
A process that keeps a file descriptor that refers to a
pts(4) device open when
switching to another mount namespace that uses a different
/dev/ptmx
instance may still
accidentally find that a device path of the same name for
that file descriptor exists. However, this device path refers
to a different device and thus can't be used to access the
device that the file descriptor refers to. Calling
ttyname
() or ttyname_r
() on the file descriptor in the
new mount namespace will cause these functions to return NULL
and set errno
to ENODEV.
This page is part of release 5.11 of the Linux man-pages
project. A
description of the project, information about reporting bugs,
and the latest version of this page, can be found at
https://www.kernel.org/doc/man−pages/.
Copyright (c) 1995 Jim Van Zandt <jrvvanzandt.mv.com> %%%LICENSE_START(GPLv2+_DOC_FULL) This is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The GNU General Public License's references to "object code" and "executables" are to be interpreted as the output of any document formatting or typesetting system, including intermediate and printed output. This manual is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this manual; if not, see <http://www.gnu.org/licenses/>. %%%LICENSE_END Modified 2001-12-13, Martin Schulze <joeyinfodrom.org> Added ttyname_r, aeb, 2002-07-20 |