Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
TTYNAME(3)		 BSD Library Functions Manual		    TTYNAME(3)

NAME
     ttyname, ttyname_r, isatty, ttyslot -- get	name of	associated terminal
     (tty) from	file descriptor

LIBRARY
     Standard C	Library	(libc, -lc)

SYNOPSIS
     #include <unistd.h>

     char *
     ttyname(int fd);

     int
     ttyname_r(int fd, char *buf, size_t len);

     int
     isatty(int	fd);

     #include <stdlib.h>

     int
     ttyslot(void);

DESCRIPTION
     These functions operate on	the system file	descriptors for	terminal type
     devices.  These descriptors are not related to the	standard I/O FILE
     typedef, but refer	to the special device files found in /dev and named
     /dev/ttyxx	and for	which an entry exists in the initialization file
     /etc/ttys (see ttys(5)), or for pseudo-terminal devices created in	ptyfs
     and named /dev/pts/n.

     The isatty() function determines if the file descriptor fd	refers to a
     valid terminal type device.

     The ttyname() function gets the related device name of a file descriptor
     for which isatty()	is true.  The ttyname_r() is the reentrant version of
     the above,	and it places the results in buf.  If there is not enough
     space to place the	results	(indicated by len), then it returns an error.

     The ttyslot() function fetches the	current	process' control terminal num-
     ber from the ttys(5) file entry.  If the terminal is a pseudo-terminal,
     and there is no special entry in the ttys(5) file for it, the slot	number
     returned is 1 + (last slot	number)	+ minor(tty).  This will return	a con-
     sistent and unique	number for each	pseudo-terminal	device without requir-
     ing one to	enumerate all of them in ttys(5).

IMPLEMENTATION NOTES
     As	an optimisation, these functions attempt to obtain information about
     all devices from the /var/run/dev.cdb database, if	it exists.  If the
     database exists but is out	of date, then these functions may produce in-
     correct results.  The database should be updated using the	dev_mkdb(8)
     command.

RETURN VALUES
     The ttyname() function returns the	NUL-terminated name if the device is
     found and isatty()	is true; otherwise a NULL pointer is returned and
     errno is set to indicate the error.

     The ttyname_r() functions returns 0 on success and	an error code on fail-
     ure.

     The isatty() function returns 1 if	fd is associated with a	terminal de-
     vice; otherwise it	returns	0 and errno is set to indicate the error.

     The ttyslot() function returns the	unit number of the device file if
     found; otherwise the value	zero is	returned.

FILES
     /dev/*
     /etc/ttys

ERRORS
     The ttyname(), ttyname_r(), and isatty() functions	will fail if:

     [EBADF]		The fd argument	is not a valid file descriptor.

     [ENOTTY]		The fd argument	does not refer to a terminal device.

     The ttyname_r() function will also	fail if:

     [ENOENT]		The terminal device is not found.  This	can happen if
			the device node	has been removed after it was opened.

     [ERANGE]		The buffer provided is not large enough	to fit the re-
			sult.

SEE ALSO
     ioctl(2), ttys(5),	dev_mkdb(8)

STANDARDS
     The ttyname() and isatty()	functions conform to ISO/IEC 9945-1:1990
     ("POSIX.1").

HISTORY
     isatty(), ttyname(), and ttyslot()	functions appeared in Version 7	AT&T
     UNIX.

BUGS
     The ttyname() function leaves its result in an internal static object and
     returns a pointer to that object.	Subsequent calls to ttyname() will
     modify the	same object.

BSD				 June 1, 2012				   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | IMPLEMENTATION NOTES | RETURN VALUES | FILES | ERRORS | SEE ALSO | STANDARDS | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ttyslot&sektion=3&manpath=NetBSD+6.0>

home | help