ttyname() - 端末名の取得

標準

標準/拡張機能 C/C++ 依存項目

POSIX.1
XPG4
XPG4.2
Single UNIX Specification、バージョン 3

両方  

形式

#define _POSIX_SOURCE
#include <unistd.h>

char *ttyname(int fildes);

機能説明

指定されたファイル記述子、fildes と関連した端末の パス名を含むストリングを戻します。戻されたポインターが静的データを指すことがあるので、ttyname() への 以降の呼び出しによって、このストリングが上書きされることがあります。

戻り値

正常に実行された場合、ttyname() はパス名が入っている ストリングを戻します。

fildes が端末でないか、あるいは パス名を判別できなかったので正常に行われなかった場合には、ttyname() は NULL ポインターを戻します。

XPG4 の特殊な動作: ttyname() 関数は、errno を次のいずれかの値に設定します。
エラー・コード
説明
EBADF
fildes 引数は、有効なオープン・ファイル記述子では ありません。
ENOTTY
fildes 引数は、端末と関連していません。

CELEBT16
⁄* CELEBT16

   This example provides the pathname of the terminal
   associated with stdin.

 *⁄
#define _POSIX_SOURCE
#include <unistd.h>
#include <stdio.h>

main() {
  char *ret, tty[40];

  if ((ret = ttyname(STDIN_FILENO)) == NULL)
    perror("ttyname() error");
  else {
    strcpy(tty, ret);
    printf("The ttyname associated with my stdin is %s¥n", tty);
  }
}
出力:
The ttyname associated with my stdin is /dev/ttyp0000

関連情報