in native/cyglaunch/main.c [52:76]
int create_pty(struct pty_t *pty) {
pty->fdm = open("/dev/ptmx", O_RDWR|O_NOCTTY);
if (pty->fdm < 0) {
flog("Could not open /dev/ptmx");
return -1;
}
if (grantpt(pty->fdm) < 0) {
flog("grantpt() failed");
close(pty->fdm);
return -1;
}
if (unlockpt(pty->fdm) < 0) {
flog("unlockpt() failed");
close(pty->fdm);
return -1;
}
char *slave_name = ptsname(pty->fdm);
if (slave_name == NULL) {
flog("Could not determine slave name");
close(pty->fdm);
return -1;
}
strcpy(pty->slave_name, slave_name);
return 0;
}