1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#define _XOPEN_SOURCE #include <unistd.h> #include <sys/ioctl.h> #include <stdlib.h> #include <string.h> # define MAX_FDS 4 char *ptsname(int fd) { static char buffer[9+MAX_FDS]; /* Ahh..great */ int pty; strcpy(buffer,"/dev/pts/"); if ((ioctl(fd, TIOCGPTN, &pty)) == -1) return 0; __ltostr(buffer+9, MAX_FDS, pty, 10, 0); return buffer; }