/*
 * pty.c
 *
 * Basic Unix98 PTY functionality; assumes devpts mounted on /dev/pts
 */

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <termios.h>
#include <sys/ioctl.h>

char *ptsname(int fd)
{
  static char buffer[32];	/* Big enough to hold even a 64-bit pts no */
  unsigned int ptyno;

  if ( ioctl(fd, TIOCGPTN, &ptyno) )
    return NULL;
  
  snprintf(buffer, sizeof buffer, "/dev/pts/%u", ptyno);
  
  return buffer;
}

int unlockpt(int fd)
{
  int unlock = 0;

  return ioctl(fd, TIOCSPTLCK, &unlock);
}
