Small test.
#include <util.h> #include <stdio.h> #include <termios.h> #include <err.h> #include <stdlib.h>
#include <sys/types.h> #include <sys/ioctl.h> #include <sys/stat.h> #include <errno.h> #include <fcntl.h> #include <grp.h> #include <stdio.h> #include <string.h> #include <unistd.h> main (){ int amaster, aslave, master; char name[100] = "/dev/ptm"; struct termios termp; struct winsize winp; printf("Pty device is : %s \n", name); // if ( openpty(&amaster, &aslave, name, &termp, &winp) == -1 ) if ((master = open(name, O_RDWR)) != -1) { struct ptmget pt; // if (ioctl(master, TIOCPTSNAME, &pt) != -1) { if (ioctl(master, TIOCPTMGET, &pt) != -1) { //(void)close(master); master = pt.cfd; aslave = pt.sfd; (void)strcpy(name, pt.sn); goto gotit; } err(EXIT_FAILURE, "Can't ioctl() TIOCPTSNAME"); } err(EXIT_FAILURE, "Can't open /dev/ptmx"); gotit: printf("Name is : %s \n", name); open(name, O_RDWR); sleep(60); }