diff Python/pythonrun.c @ 43712:00b136b7da84

Patch 1329 (partial) by Christian Heimes. Add a closefd flag to open() which can be set to False to prevent closing the file descriptor when close() is called or when the object is destroyed. Useful to ensure that sys.std{in,out,err} keep their file descriptors open when Python is uninitialized. (This was always a feature in 2.x, it just wasn't implemented in 3.0 yet.)
author Guido van Rossum <guido@python.org>
date Tue, 30 Oct 2007 17:27:30 +0000
parents 0067a6ab4854
children e510b716bd80
line wrap: on
line diff
--- a/Python/pythonrun.c	Mon Oct 29 19:54:24 2007 +0000
+++ b/Python/pythonrun.c	Tue Oct 30 17:27:30 2007 +0000
@@ -720,7 +720,7 @@
 
 	/* Set sys.stdin */
 	if (!(std = PyFile_FromFd(fileno(stdin), "<stdin>", "r", -1,
-				      NULL, "\n"))) {
+				  NULL, "\n", 0))) {
 		goto error;
 	}
 	PySys_SetObject("__stdin__", std);
@@ -729,16 +729,16 @@
 
 	/* Set sys.stdout */
 	if (!(std = PyFile_FromFd(fileno(stdout), "<stdout>", "w", -1,
-				      NULL, "\n"))) {
+				  NULL, "\n", 0))) {
             goto error;
         }
 	PySys_SetObject("__stdout__", std);
 	PySys_SetObject("stdout", std);
 	Py_DECREF(std);
 
-	/* Set sys.stderr */
+	/* Set sys.stderr, replaces the preliminary stderr */
 	if (!(std = PyFile_FromFd(fileno(stderr), "<stderr>", "w", -1,
-				      NULL, "\n"))) {
+				  NULL, "\n", 0))) {
             goto error;
         }
         PySys_SetObject("__stderr__", std);