mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
issue7213: Open the pipes used by subprocesses with the FD_CLOEXEC flag from
the C code, using pipe2() when available. Adds unittests for close_fds and cloexec behaviors.
This commit is contained in:
parent
f560485388
commit
51ee270876
10 changed files with 195 additions and 17 deletions
24
Lib/test/subprocessdata/fd_status.py
Normal file
24
Lib/test/subprocessdata/fd_status.py
Normal file
|
@ -0,0 +1,24 @@
|
|||
"""When called as a script, print a comma-separated list of the open
|
||||
file descriptors on stdout."""
|
||||
|
||||
import errno
|
||||
import os
|
||||
import fcntl
|
||||
|
||||
try:
|
||||
_MAXFD = os.sysconf("SC_OPEN_MAX")
|
||||
except:
|
||||
_MAXFD = 256
|
||||
|
||||
def isopen(fd):
|
||||
"""Return True if the fd is open, and False otherwise"""
|
||||
try:
|
||||
fcntl.fcntl(fd, fcntl.F_GETFD, 0)
|
||||
except IOError as e:
|
||||
if e.errno == errno.EBADF:
|
||||
return False
|
||||
raise
|
||||
return True
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(','.join(str(fd) for fd in range(0, _MAXFD) if isopen(fd)))
|
Loading…
Add table
Add a link
Reference in a new issue