Python os.closerange() Examples
The following are 30
code examples of os.closerange().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
os
, or try the search function
.
Example #1
Source File: test_fd.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_open(self): test_filename = "tmp.open.test" fd1 = os.open(test_filename + "1", flags) # make sure fd+1 and fd+2 are closed os.closerange(fd1 + 1, fd1 + 2) # open should return the lowest-numbered file descriptor not currently open # for the process fd2 = os.open(test_filename + "2", flags) fd3 = os.open(test_filename + "3", flags) os.close(fd2) self.assertRaisesMessage(OSError, "[Errno 9] Bad file descriptor", os.lseek, fd2, os.SEEK_SET, 0) fd4 = os.open(test_filename + "4", flags) self.assertEqual(fd4, fd2) os.close(fd1) os.close(fd3) os.close(fd4) for i in range(1, 5): os.unlink(test_filename + str(i))
Example #2
Source File: test_os.py From oss-ftp with MIT License | 6 votes |
def test_closerange(self): first = os.open(test_support.TESTFN, os.O_CREAT|os.O_RDWR) # We must allocate two consecutive file descriptors, otherwise # it will mess up other file descriptors (perhaps even the three # standard ones). second = os.dup(first) try: retries = 0 while second != first + 1: os.close(first) retries += 1 if retries > 10: # XXX test skipped self.skipTest("couldn't allocate two consecutive fds") first, second = second, os.dup(second) finally: os.close(second) # close a fd that is open, and one that isn't os.closerange(first, first + 2) self.assertRaises(OSError, os.write, first, "a")
Example #3
Source File: test_os.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_closerange(self): first = os.open(support.TESTFN, os.O_CREAT|os.O_RDWR) # We must allocate two consecutive file descriptors, otherwise # it will mess up other file descriptors (perhaps even the three # standard ones). second = os.dup(first) try: retries = 0 while second != first + 1: os.close(first) retries += 1 if retries > 10: # XXX test skipped self.skipTest("couldn't allocate two consecutive fds") first, second = second, os.dup(second) finally: os.close(second) # close a fd that is open, and one that isn't os.closerange(first, first + 2) self.assertRaises(OSError, os.write, first, b"a")
Example #4
Source File: test_os.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 6 votes |
def test_closerange(self): first = os.open(test_support.TESTFN, os.O_CREAT|os.O_RDWR) # We must allocate two consecutive file descriptors, otherwise # it will mess up other file descriptors (perhaps even the three # standard ones). second = os.dup(first) try: retries = 0 while second != first + 1: os.close(first) retries += 1 if retries > 10: # XXX test skipped self.skipTest("couldn't allocate two consecutive fds") first, second = second, os.dup(second) finally: os.close(second) # close a fd that is open, and one that isn't os.closerange(first, first + 2) self.assertRaises(OSError, os.write, first, "a")
Example #5
Source File: test_os.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_closerange(self): first = os.open(support.TESTFN, os.O_CREAT|os.O_RDWR) # We must allocate two consecutive file descriptors, otherwise # it will mess up other file descriptors (perhaps even the three # standard ones). second = os.dup(first) try: retries = 0 while second != first + 1: os.close(first) retries += 1 if retries > 10: # XXX test skipped self.skipTest("couldn't allocate two consecutive fds") first, second = second, os.dup(second) finally: os.close(second) # close a fd that is open, and one that isn't os.closerange(first, first + 2) self.assertRaises(OSError, os.write, first, b"a")
Example #6
Source File: test_os.py From BinderFilter with MIT License | 6 votes |
def test_closerange(self): first = os.open(test_support.TESTFN, os.O_CREAT|os.O_RDWR) # We must allocate two consecutive file descriptors, otherwise # it will mess up other file descriptors (perhaps even the three # standard ones). second = os.dup(first) try: retries = 0 while second != first + 1: os.close(first) retries += 1 if retries > 10: # XXX test skipped self.skipTest("couldn't allocate two consecutive fds") first, second = second, os.dup(second) finally: os.close(second) # close a fd that is open, and one that isn't os.closerange(first, first + 2) self.assertRaises(OSError, os.write, first, "a")
Example #7
Source File: test_os.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def test_closerange(self): first = os.open(support.TESTFN, os.O_CREAT|os.O_RDWR) # We must allocate two consecutive file descriptors, otherwise # it will mess up other file descriptors (perhaps even the three # standard ones). second = os.dup(first) try: retries = 0 while second != first + 1: os.close(first) retries += 1 if retries > 10: # XXX test skipped self.skipTest("couldn't allocate two consecutive fds") first, second = second, os.dup(second) finally: os.close(second) # close a fd that is open, and one that isn't os.closerange(first, first + 2) self.assertRaises(OSError, os.write, first, b"a")
Example #8
Source File: test_fd.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_open(self): test_filename = "tmp.open.test" fd1 = os.open(test_filename + "1", flags) # make sure fd+1 and fd+2 are closed os.closerange(fd1 + 1, fd1 + 2) # open should return the lowest-numbered file descriptor not currently open # for the process fd2 = os.open(test_filename + "2", flags) fd3 = os.open(test_filename + "3", flags) os.close(fd2) self.assertRaisesMessage(OSError, "[Errno 9] Bad file descriptor", os.lseek, fd2, os.SEEK_SET, 0) fd4 = os.open(test_filename + "4", flags) self.assertEqual(fd4, fd2) os.close(fd1) os.close(fd3) os.close(fd4) for i in range(1, 5): os.unlink(test_filename + str(i))
Example #9
Source File: subprocess.py From unity-python with MIT License | 6 votes |
def _close_fds(self, but): if hasattr(os, 'closerange'): os.closerange(3, but) os.closerange(but + 1, MAXFD) else: for i in xrange(3, MAXFD): if i == but: continue try: os.close(i) except: pass # Used as a bandaid workaround for https://bugs.python.org/issue27448 # to prevent multiple simultaneous subprocess launches from interfering # with one another and leaving gc disabled.
Example #10
Source File: test_os.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_closerange(self): first = os.open(test_support.TESTFN, os.O_CREAT|os.O_RDWR) # We must allocate two consecutive file descriptors, otherwise # it will mess up other file descriptors (perhaps even the three # standard ones). second = os.dup(first) try: retries = 0 while second != first + 1: os.close(first) retries += 1 if retries > 10: # XXX test skipped self.skipTest("couldn't allocate two consecutive fds") first, second = second, os.dup(second) finally: os.close(second) # close a fd that is open, and one that isn't os.closerange(first, first + 2) self.assertRaises(OSError, os.write, first, "a")
Example #11
Source File: subprocess.py From ironpython2 with Apache License 2.0 | 6 votes |
def _close_fds(self, but): if hasattr(os, 'closerange'): os.closerange(3, but) os.closerange(but + 1, MAXFD) else: for i in xrange(3, MAXFD): if i == but: continue try: os.close(i) except: pass # Used as a bandaid workaround for https://bugs.python.org/issue27448 # to prevent multiple simultaneous subprocess launches from interfering # with one another and leaving gc disabled.
Example #12
Source File: _daemonize_unix.py From py_daemoniker with The Unlicense | 6 votes |
def _autoclose_files(shielded=None, fallback_limit=1024): ''' Automatically close any open file descriptors. shielded is iterable of file descriptors. ''' # Process shielded. shielded = default_to(shielded, []) # Figure out the maximum number of files to try to close. # This returns a tuple of softlimit, hardlimit; the hardlimit is always # greater. softlimit, hardlimit = resource.getrlimit(resource.RLIMIT_NOFILE) # If the hard limit is infinity, we can't iterate to it. if hardlimit == resource.RLIM_INFINITY: # Check the soft limit. If it's also infinity, fallback to guess. if softlimit == resource.RLIM_INFINITY: fdlimit = fallback_limit # The soft limit is finite, so fallback to that. else: fdlimit = softlimit # The hard limit is not infinity, so prefer it. else: fdlimit = hardlimit # Skip fd 0, 1, 2, which are used by stdin, stdout, and stderr # (respectively) ranges_to_close = _make_range_tuples( start = 3, stop = fdlimit, exclude = shielded ) for start, stop in ranges_to_close: # How nice of os to include this for us! os.closerange(start, stop)
Example #13
Source File: test_os.py From CTFCrackTools with GNU General Public License v3.0 | 6 votes |
def test_closerange(self): first = os.open(test_support.TESTFN, os.O_CREAT|os.O_RDWR) # We must allocate two consecutive file descriptors, otherwise # it will mess up other file descriptors (perhaps even the three # standard ones). second = os.dup(first) try: retries = 0 while second != first + 1: os.close(first) retries += 1 if retries > 10: # XXX test skipped self.skipTest("couldn't allocate two consecutive fds") first, second = second, os.dup(second) finally: os.close(second) # close a fd that is open, and one that isn't os.closerange(first, first + 2) self.assertRaises(OSError, os.write, first, "a")
Example #14
Source File: test_os.py From gcblue with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_closerange(self): first = os.open(test_support.TESTFN, os.O_CREAT|os.O_RDWR) # We must allocate two consecutive file descriptors, otherwise # it will mess up other file descriptors (perhaps even the three # standard ones). second = os.dup(first) try: retries = 0 while second != first + 1: os.close(first) retries += 1 if retries > 10: # XXX test skipped self.skipTest("couldn't allocate two consecutive fds") first, second = second, os.dup(second) finally: os.close(second) # close a fd that is open, and one that isn't os.closerange(first, first + 2) self.assertRaises(OSError, os.write, first, "a")
Example #15
Source File: utils.py From treadmill with Apache License 2.0 | 5 votes |
def closefrom(firstfd): """Close all file descriptors from `firstfd` on. """ try: # Look in proc for all open filedescriptors maxfd = int(os.listdir('/proc/self/fd')[-1]) except (OSError, IndexError): # fallback to the hardlimit to max filedescriptors. maxfd = resource.getrlimit(resource.RLIMIT_NOFILE)[1] os.closerange(firstfd, maxfd)
Example #16
Source File: popen2.py From canape with GNU General Public License v3.0 | 5 votes |
def _run_child(self, cmd): if isinstance(cmd, basestring): cmd = ['/bin/sh', '-c', cmd] os.closerange(3, MAXFD) try: os.execvp(cmd[0], cmd) finally: os._exit(1)
Example #17
Source File: popen2.py From unity-python with MIT License | 5 votes |
def _run_child(self, cmd): if isinstance(cmd, basestring): cmd = ['/bin/sh', '-c', cmd] os.closerange(3, MAXFD) try: os.execvp(cmd[0], cmd) finally: os._exit(1)
Example #18
Source File: __subprocess.py From ConTroll_Remote_Access_Trojan with Apache License 2.0 | 5 votes |
def _close_fds(self, but): os.closerange(3, but) os.closerange(but + 1, MAXFD)
Example #19
Source File: subprocess.py From canape with GNU General Public License v3.0 | 5 votes |
def _close_fds(self, but): if hasattr(os, 'closerange'): os.closerange(3, but) os.closerange(but + 1, MAXFD) else: for i in xrange(3, MAXFD): if i == but: continue try: os.close(i) except: pass
Example #20
Source File: __init__.py From soapy with GNU General Public License v3.0 | 5 votes |
def exit(): """ Causes python to exit without garbage-collecting any objects, and thus avoids calling object destructor methods. This is a sledgehammer workaround for a variety of bugs in PyQt and Pyside that cause crashes on exit. This function does the following in an attempt to 'safely' terminate the process: * Invoke atexit callbacks * Close all open file handles * os._exit() Note: there is some potential for causing damage with this function if you are using objects that _require_ their destructors to be called (for example, to properly terminate log files, disconnect from devices, etc). Situations like this are probably quite rare, but use at your own risk. """ ## first disable our own cleanup function; won't be needing it. setConfigOptions(exitCleanup=False) ## invoke atexit callbacks atexit._run_exitfuncs() ## close file handles if sys.platform == 'darwin': for fd in range(3, 4096): if fd not in [7]: # trying to close 7 produces an illegal instruction on the Mac. os.close(fd) else: os.closerange(3, 4096) ## just guessing on the maximum descriptor count.. os._exit(0) ## Convenience functions for command-line use
Example #21
Source File: test_os.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 5 votes |
def test_closerange(self): if hasattr(os, "closerange"): fd = int(test_support.make_bad_fd()) # need to take an int for Jython, given this test # Make sure none of the descriptors we are about to close are # currently valid (issue 6542). for i in range(10): try: os.fstat(fd+i) except OSError: pass else: break if i < 2: raise unittest.SkipTest( "Unable to acquire a range of invalid file descriptors") self.assertEqual(os.closerange(fd, fd + i-1), None)
Example #22
Source File: subprocess.py From medicare-demo with Apache License 2.0 | 5 votes |
def _close_fds(self, but): os.closerange(3, but) os.closerange(but + 1, MAXFD)
Example #23
Source File: util.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def close_all_fds_except(fds): fds = list(fds) + [-1, MAXFD] fds.sort() assert fds[-1] == MAXFD, 'fd too large' for i in range(len(fds) - 1): os.closerange(fds[i]+1, fds[i+1]) # # Close sys.stdin and replace stdin with os.devnull #
Example #24
Source File: test_os.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_closerange(self): fd = support.make_bad_fd() # Make sure none of the descriptors we are about to close are # currently valid (issue 6542). for i in range(10): try: os.fstat(fd+i) except OSError: pass else: break if i < 2: raise unittest.SkipTest( "Unable to acquire a range of invalid file descriptors") self.assertEqual(os.closerange(fd, fd + i-1), None)
Example #25
Source File: test_os.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_urandom_fd_reopened(self): # Issue #21207: urandom() should detect its fd to /dev/urandom # changed to something else, and reopen it. with open(support.TESTFN, 'wb') as f: f.write(b"x" * 256) self.addCleanup(os.unlink, support.TESTFN) code = """if 1: import os import sys import test.support os.urandom(4) with test.support.SuppressCrashReport(): for fd in range(3, 256): try: os.close(fd) except OSError: pass else: # Found the urandom fd (XXX hopefully) break os.closerange(3, 256) with open({TESTFN!r}, 'rb') as f: os.dup2(f.fileno(), fd) sys.stdout.buffer.write(os.urandom(4)) sys.stdout.buffer.write(os.urandom(4)) """.format(TESTFN=support.TESTFN) rc, out, err = assert_python_ok('-Sc', code) self.assertEqual(len(out), 8) self.assertNotEqual(out[0:4], out[4:8]) rc, out2, err2 = assert_python_ok('-Sc', code) self.assertEqual(len(out2), 8) self.assertNotEqual(out2, out)
Example #26
Source File: test_os.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_urandom_fd_closed(self): # Issue #21207: urandom() should reopen its fd to /dev/urandom if # closed. code = """if 1: import os import sys import test.support os.urandom(4) with test.support.SuppressCrashReport(): os.closerange(3, 256) sys.stdout.buffer.write(os.urandom(4)) """ rc, out, err = assert_python_ok('-Sc', code)
Example #27
Source File: subprocess.py From PhonePi_SampleServer with MIT License | 5 votes |
def _close_fds(self, keep): # `keep` is a set of fds, so we # use os.closerange from 3 to min(keep) # and then from max(keep + 1) to MAXFD and # loop through filling in the gaps. # Under new python versions, we need to explicitly set # passed fds to be inheritable or they will go away on exec if hasattr(os, 'set_inheritable'): set_inheritable = os.set_inheritable else: set_inheritable = lambda i, v: True if hasattr(os, 'closerange'): keep = sorted(keep) min_keep = min(keep) max_keep = max(keep) os.closerange(3, min_keep) os.closerange(max_keep + 1, MAXFD) for i in xrange(min_keep, max_keep): if i in keep: set_inheritable(i, True) continue try: os.close(i) except: pass else: for i in xrange(3, MAXFD): if i in keep: set_inheritable(i, True) continue try: os.close(i) except: pass
Example #28
Source File: subprocess.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def _close_fds(self, but): if hasattr(os, 'closerange'): os.closerange(3, but) os.closerange(but + 1, MAXFD) else: for i in xrange(3, MAXFD): if i == but: continue try: os.close(i) except: pass
Example #29
Source File: popen2.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def _run_child(self, cmd): if isinstance(cmd, basestring): cmd = ['/bin/sh', '-c', cmd] os.closerange(3, MAXFD) try: os.execvp(cmd[0], cmd) finally: os._exit(1)
Example #30
Source File: popen2.py From datafari with Apache License 2.0 | 5 votes |
def _run_child(self, cmd): if isinstance(cmd, basestring): cmd = ['/bin/sh', '-c', cmd] os.closerange(3, MAXFD) try: os.execvp(cmd[0], cmd) finally: os._exit(1)