]>
Commit | Line | Data |
---|---|---|
b168057a | 1 | /* Copyright (C) 1998-2015 Free Software Foundation, Inc. |
ae1025be | 2 | This file is part of the GNU C Library. |
6591c335 | 3 | Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998. |
46d7de19 | 4 | |
ae1025be | 5 | The GNU C Library is free software; you can redistribute it and/or |
41bdb6e2 AJ |
6 | modify it under the terms of the GNU Lesser General Public |
7 | License as published by the Free Software Foundation; either | |
8 | version 2.1 of the License, or (at your option) any later version. | |
46d7de19 | 9 | |
ae1025be UD |
10 | The GNU C Library is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
41bdb6e2 | 13 | Lesser General Public License for more details. |
46d7de19 | 14 | |
41bdb6e2 | 15 | You should have received a copy of the GNU Lesser General Public |
59ba27a6 PE |
16 | License along with the GNU C Library; if not, see |
17 | <http://www.gnu.org/licenses/>. */ | |
46d7de19 | 18 | |
6591c335 UD |
19 | #include <errno.h> |
20 | #include <stdlib.h> | |
9b3c7c3c UD |
21 | #include <sys/ioctl.h> |
22 | #include <termios.h> | |
23 | ||
46d7de19 | 24 | |
9b3c7c3c UD |
25 | /* Unlock the slave pseudo terminal associated with the master pseudo |
26 | terminal specified by FD. */ | |
6591c335 | 27 | int |
9b3c7c3c | 28 | unlockpt (int fd) |
6591c335 UD |
29 | { |
30 | #ifdef TIOCSPTLCK | |
9b3c7c3c | 31 | int save_errno = errno; |
6591c335 | 32 | int unlock = 0; |
46d7de19 | 33 | |
50304ef0 | 34 | if (__ioctl (fd, TIOCSPTLCK, &unlock)) |
6591c335 | 35 | { |
dfbad9c8 | 36 | if (errno == EINVAL) |
6591c335 | 37 | { |
9b3c7c3c | 38 | __set_errno (save_errno); |
6591c335 UD |
39 | return 0; |
40 | } | |
41 | else | |
42 | return -1; | |
43 | } | |
dfbad9c8 | 44 | #endif |
9b3c7c3c UD |
45 | /* If we have no TIOCSPTLCK ioctl, all slave pseudo terminals are |
46 | unlocked by default. */ | |
6591c335 | 47 | return 0; |
6591c335 | 48 | } |