in src/com/pty4j/unix/Pty.java [129:156]
public static Pair<Integer, String> ptyMasterOpen() {
PtyHelpers.OSFacade m_jpty = PtyHelpers.getInstance();
String name = "/dev/ptmx";
int fdm = m_jpty.getpt();
if (fdm < 0) {
return new Pair<>(-1, name);
}
if (m_jpty.grantpt(fdm) < 0) { /* grant access to slave */
m_jpty.close(fdm);
return new Pair<>(-2, name);
}
if (m_jpty.unlockpt(fdm) < 0) { /* clear slave's lock flag */
m_jpty.close(fdm);
return new Pair<>(-3, name);
}
String ptr = ptsname(m_jpty, fdm);
if (ptr == null) { /* get slave's name */
m_jpty.close(fdm);
return new Pair<>(-4, name);
}
return new Pair<>(fdm, ptr);
}