ttyname()

Updated: April 19, 2023

Get a fully qualified pathname for a file

Synopsis:

#include <unistd.h>

char *ttyname( int filedes );

Arguments:

filedes
A file descriptor that's associated with the file whose name you want to get.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The ttyname() function returns a pointer to a static buffer that contains a fully qualified pathname associated with the file associated with filedes.

Returns:

A pointer to the pathname for filedes, or NULL if an error occurred (errno is set).

Errors:

EAGAIN
The device driver was in use by another process, or the driver was unable to carry out the request due to an outstanding command in progress.
EBADF
The filedes argument isn't a valid file descriptor.
EINTR
The function was interrupted by a signal.
ENOSYS
The ttyname() function isn't implemented for the filesystem specified by filedes.
ENOTTY
The filedes argument doesn't refer to a tty.
EPERM
The process doesn't have sufficient permission to carry out the requested command.

Examples:

/*
 * The following program prints out the name
 * of the terminal associated with stdin.
 */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main( void )
{
    if( isatty( 0 ) ) {
       printf( "%s\n", ttyname( 0 ) );
    } else {
       printf( "\n" );
    }
    return EXIT_SUCCESS;
}

Classification:

POSIX 1003.1

Safety:  
Cancellation point No
Interrupt handler No
Signal handler No
Thread No