[Glibc-bsd-commits] r4609 - trunk/glibc-ports/kfreebsd
Petr Salinger
ps-guest at alioth.debian.org
Mon Jul 8 12:47:24 UTC 2013
Author: ps-guest
Date: 2013-06-25 11:55:35 +0000 (Tue, 25 Jun 2013)
New Revision: 4609
Added:
trunk/glibc-ports/kfreebsd/grantpt.c
Log:
implement close_all_fds()
Added: trunk/glibc-ports/kfreebsd/grantpt.c
===================================================================
--- trunk/glibc-ports/kfreebsd/grantpt.c (rev 0)
+++ trunk/glibc-ports/kfreebsd/grantpt.c 2013-06-25 11:55:35 UTC (rev 4609)
@@ -0,0 +1,34 @@
+#include <assert.h>
+#include <ctype.h>
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <paths.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/syscall.h>
+#include <not-cancel.h>
+
+#include "pty-private.h"
+
+
+/* Close all file descriptors except the one specified. */
+static void
+close_all_fds (void)
+{
+ int i;
+
+ for (i = 0 ; i < PTY_FILENO; i++)
+ close_not_cancel_no_status (i);
+
+ syscall(SYS_closefrom, PTY_FILENO + 1L);
+
+ int nullfd = open_not_cancel_2 (_PATH_DEVNULL, O_RDONLY);
+ assert (nullfd == STDIN_FILENO);
+ nullfd = open_not_cancel_2 (_PATH_DEVNULL, O_WRONLY);
+ assert (nullfd == STDOUT_FILENO);
+ __dup2 (STDOUT_FILENO, STDERR_FILENO);
+}
+#define CLOSE_ALL_FDS() close_all_fds()
+
+#include <sysdeps/unix/grantpt.c>
More information about the Glibc-bsd-commits
mailing list