From: Andrew M. Kuchling Date: Sun, 28 Sep 2008 00:15:27 +0000 (+0000) Subject: #1579477: mention necessity to flush output before exec'ing X-Git-Tag: v2.6~25 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ac77166e907e5775691f45ca5e9e070cf53378ce;p=thirdparty%2FPython%2Fcpython.git #1579477: mention necessity to flush output before exec'ing --- diff --git a/Doc/library/os.rst b/Doc/library/os.rst index 0aa115dff729..c223e549b749 100644 --- a/Doc/library/os.rst +++ b/Doc/library/os.rst @@ -1451,7 +1451,13 @@ to be ignored. These functions all execute a new program, replacing the current process; they do not return. On Unix, the new executable is loaded into the current process, and will have the same process id as the caller. Errors will be reported as - :exc:`OSError` exceptions. + :exc:`OSError` exceptions. + + The current process is replaced immediately. Open file objects and + descriptors are not flushed, so if there may be data buffered + on these open files, you should flush them using + :func:`sys.stdout.flush` or :func:`os.fsync` before calling an + :func:`exec\*` function. The "l" and "v" variants of the :func:`exec\*` functions differ in how command-line arguments are passed. The "l" variants are perhaps the easiest @@ -1477,8 +1483,9 @@ to be ignored. used to define the environment variables for the new process (these are used instead of the current process' environment); the functions :func:`execl`, :func:`execlp`, :func:`execv`, and :func:`execvp` all cause the new process to - inherit the environment of the current process. Availability: Unix, - Windows. + inherit the environment of the current process. + + Availability: Unix, Windows. .. function:: _exit(n)