mirror of
https://github.com/python/cpython.git
synced 2025-08-02 16:13:13 +00:00
Issue #12105: Add O_CLOEXEC to the os module.
This commit is contained in:
parent
f738d33e5d
commit
1e045b1831
4 changed files with 13 additions and 0 deletions
|
@ -1298,6 +1298,7 @@ or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Window
|
||||||
O_NOCTTY
|
O_NOCTTY
|
||||||
O_SHLOCK
|
O_SHLOCK
|
||||||
O_EXLOCK
|
O_EXLOCK
|
||||||
|
O_CLOEXEC
|
||||||
|
|
||||||
These constants are only available on Unix.
|
These constants are only available on Unix.
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ import errno
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import os
|
import os
|
||||||
|
import fcntl
|
||||||
import pwd
|
import pwd
|
||||||
import shutil
|
import shutil
|
||||||
import stat
|
import stat
|
||||||
|
@ -307,6 +308,12 @@ class PosixTester(unittest.TestCase):
|
||||||
fp1.close()
|
fp1.close()
|
||||||
fp2.close()
|
fp2.close()
|
||||||
|
|
||||||
|
@unittest.skipUnless(hasattr(os, 'O_CLOEXEC'), "needs os.O_CLOEXEC")
|
||||||
|
def test_oscloexec(self):
|
||||||
|
fd = os.open(support.TESTFN, os.O_RDONLY|os.O_CLOEXEC)
|
||||||
|
self.addCleanup(os.close, fd)
|
||||||
|
self.assertTrue(fcntl.fcntl(fd, fcntl.F_GETFD) & fcntl.FD_CLOEXEC)
|
||||||
|
|
||||||
def test_osexlock(self):
|
def test_osexlock(self):
|
||||||
if hasattr(posix, "O_EXLOCK"):
|
if hasattr(posix, "O_EXLOCK"):
|
||||||
fd = os.open(support.TESTFN,
|
fd = os.open(support.TESTFN,
|
||||||
|
|
|
@ -153,6 +153,8 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #12105: Add O_CLOEXEC to the os module.
|
||||||
|
|
||||||
- Issue #12079: Decimal('Infinity').fma(Decimal('0'), (3.91224318126786e+19+0j))
|
- Issue #12079: Decimal('Infinity').fma(Decimal('0'), (3.91224318126786e+19+0j))
|
||||||
now raises TypeError (reflecting the invalid type of the 3rd argument) rather
|
now raises TypeError (reflecting the invalid type of the 3rd argument) rather
|
||||||
than Decimal.InvalidOperation.
|
than Decimal.InvalidOperation.
|
||||||
|
|
|
@ -9783,6 +9783,9 @@ all_ins(PyObject *d)
|
||||||
#ifdef PRIO_USER
|
#ifdef PRIO_USER
|
||||||
if (ins(d, "PRIO_USER", (long)PRIO_USER)) return -1;
|
if (ins(d, "PRIO_USER", (long)PRIO_USER)) return -1;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef O_CLOEXEC
|
||||||
|
if (ins(d, "O_CLOEXEC", (long)O_CLOEXEC)) return -1;
|
||||||
|
#endif
|
||||||
/* posix - constants for *at functions */
|
/* posix - constants for *at functions */
|
||||||
#ifdef AT_SYMLINK_NOFOLLOW
|
#ifdef AT_SYMLINK_NOFOLLOW
|
||||||
if (ins(d, "AT_SYMLINK_NOFOLLOW", (long)AT_SYMLINK_NOFOLLOW)) return -1;
|
if (ins(d, "AT_SYMLINK_NOFOLLOW", (long)AT_SYMLINK_NOFOLLOW)) return -1;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue