diff options
author | Roland McGrath <roland@gnu.org> | 1995-04-05 04:39:51 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1995-04-05 04:39:51 +0000 |
commit | c0fef53b1e038a29ea57825af88fceeebdab874e (patch) | |
tree | 1695cfe07d507f907b5906af50614e0a9f7e3683 | |
parent | 4bca5a35b82dd45f3322679ef900a1753fc8d688 (diff) | |
download | glibc-c0fef53b1e038a29ea57825af88fceeebdab874e.zip glibc-c0fef53b1e038a29ea57825af88fceeebdab874e.tar.gz glibc-c0fef53b1e038a29ea57825af88fceeebdab874e.tar.bz2 |
* misc/login_tty.c [! TIOCSCTTY]: Try an emulation using ttyname
and open.
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | misc/login_tty.c | 20 |
2 files changed, 23 insertions, 0 deletions
@@ -1,5 +1,8 @@ Wed Apr 5 00:13:45 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> + * misc/login_tty.c [! TIOCSCTTY]: Try an emulation using ttyname + and open. + * sysdeps/i386/bsd-_setjmp.S: Fix typo in name: setjmp -> _setjmp. Tue Apr 4 00:48:53 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> diff --git a/misc/login_tty.c b/misc/login_tty.c index 6ea2b9b..e4e075c 100644 --- a/misc/login_tty.c +++ b/misc/login_tty.c @@ -38,14 +38,34 @@ static char sccsid[] = "@(#)login_tty.c 8.1 (Berkeley) 6/4/93"; #include <sys/param.h> #include <sys/ioctl.h> #include <unistd.h> +#include <fcntl.h> int login_tty(fd) int fd; { (void) setsid(); +#ifdef TIOCSCTTY if (ioctl(fd, TIOCSCTTY, (char *)NULL) == -1) return (-1); +#else + { + /* This might work. */ + char *fdname = ttyname (fd); + int newfd; + if (fdname) + { + if (fd != 0) + (void) close (0); + if (fd != 1) + (void) close (1); + if (fd != 2) + (void) close (2); + newfd = open (fdname, O_RDWR); + (void) close (newfd); + } + } +#endif (void) dup2(fd, 0); (void) dup2(fd, 1); (void) dup2(fd, 2); |