… | |
… | |
76 | get_pty (int *fd_tty, char **ttydev) |
76 | get_pty (int *fd_tty, char **ttydev) |
77 | { |
77 | { |
78 | int pfd; |
78 | int pfd; |
79 | |
79 | |
80 | # if defined(HAVE_GETPT) |
80 | # if defined(HAVE_GETPT) |
81 | pfd = getpt(); |
81 | pfd = getpt (); |
82 | # elif defined(HAVE_POSIX_OPENPT) |
82 | # elif defined(HAVE_POSIX_OPENPT) |
83 | pfd = posix_openpt (O_RDWR | O_NOCTTY); |
83 | pfd = posix_openpt (O_RDWR | O_NOCTTY); |
84 | # else |
84 | # else |
85 | # ifdef _AIX |
85 | # ifdef _AIX |
86 | pfd = open ("/dev/ptc", O_RDWR | O_NOCTTY, 0); |
86 | pfd = open ("/dev/ptc", O_RDWR | O_NOCTTY, 0); |
… | |
… | |
130 | get_pty (int *fd_tty, char **ttydev) |
130 | get_pty (int *fd_tty, char **ttydev) |
131 | { |
131 | { |
132 | int pfd; |
132 | int pfd; |
133 | char *slave; |
133 | char *slave; |
134 | |
134 | |
135 | slave = _getpty (&pfd, O_RDWR | O_NONBLOCK | O_NOCTTY, 0622, 0); |
135 | slave = _getpty (&pfd, O_RDWR | O_NOCTTY, 0622, 0); |
136 | |
136 | |
137 | if (slave != NULL) |
137 | if (slave != NULL) |
138 | { |
138 | { |
139 | *ttydev = strdup (slave); |
139 | *ttydev = strdup (slave); |
140 | return pfd; |
140 | return pfd; |
… | |
… | |
156 | const char *majors = "pqrstuvwxyzabcde"; |
156 | const char *majors = "pqrstuvwxyzabcde"; |
157 | const char *minors = "0123456789abcdef"; |
157 | const char *minors = "0123456789abcdef"; |
158 | |
158 | |
159 | for (i = 0; i < 256; i++) |
159 | for (i = 0; i < 256; i++) |
160 | { |
160 | { |
161 | snprintf(pty_name, 32, "/dev/pty%c%c", majors[i / 16], minors[i % 16]); |
161 | snprintf (pty_name, 32, "/dev/pty%c%c", majors[i / 16], minors[i % 16]); |
162 | snprintf(tty_name, 32, "/dev/tty%c%c", majors[i / 16], minors[i % 16]); |
162 | snprintf (tty_name, 32, "/dev/tty%c%c", majors[i / 16], minors[i % 16]); |
163 | |
163 | |
164 | if ((pfd = open (pty_name, O_RDWR | O_NOCTTY, 0)) == -1) |
164 | if ((pfd = open (pty_name, O_RDWR | O_NOCTTY, 0)) == -1) |
165 | { |
165 | { |
166 | snprintf(pty_name, 32, "/dev/ptyp%d", i); |
166 | snprintf (pty_name, 32, "/dev/ptyp%d", i); |
167 | snprintf(tty_name, 32, "/dev/ttyp%d", i); |
167 | snprintf (tty_name, 32, "/dev/ttyp%d", i); |
168 | if ((pfd = open (pty_name, O_RDWR | O_NOCTTY, 0)) == -1) |
168 | if ((pfd = open (pty_name, O_RDWR | O_NOCTTY, 0)) == -1) |
169 | continue; |
169 | continue; |
170 | } |
170 | } |
171 | |
171 | |
172 | if (access (tty_name, R_OK | W_OK) == 0) |
172 | if (access (tty_name, R_OK | W_OK) == 0) |