[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