closes bpo-37964: add F_GETPATH command to fcntl (GH-15550)
https://bugs.python.org/issue37964 Automerge-Triggered-By: @benjaminp
This commit is contained in:
parent
e4a5e9b5bb
commit
13f37f2ba8
|
@ -33,6 +33,10 @@ descriptor.
|
||||||
``F_SEAL_*`` constants for sealing of :func:`os.memfd_create` file
|
``F_SEAL_*`` constants for sealing of :func:`os.memfd_create` file
|
||||||
descriptors.
|
descriptors.
|
||||||
|
|
||||||
|
.. versionchanged:: 3.9
|
||||||
|
On macOS, the fcntl module exposes the ``F_GETPATH`` constant, which obtains
|
||||||
|
the path of a file from a file descriptor.
|
||||||
|
|
||||||
The module defines the following functions:
|
The module defines the following functions:
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -144,6 +144,12 @@ class TestFcntl(unittest.TestCase):
|
||||||
self.assertRaises(OverflowError, fcntl.flock, _testcapi.INT_MAX+1,
|
self.assertRaises(OverflowError, fcntl.flock, _testcapi.INT_MAX+1,
|
||||||
fcntl.LOCK_SH)
|
fcntl.LOCK_SH)
|
||||||
|
|
||||||
|
@unittest.skipIf(sys.platform != 'darwin', "F_GETPATH is only available on macos")
|
||||||
|
def test_fcntl_f_getpath(self):
|
||||||
|
self.f = open(TESTFN, 'wb')
|
||||||
|
abspath = os.path.abspath(TESTFN)
|
||||||
|
res = fcntl.fcntl(self.f.fileno(), fcntl.F_GETPATH, bytes(len(abspath)))
|
||||||
|
self.assertEqual(abspath, res.decode('utf-8'))
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
run_unittest(TestFcntl)
|
run_unittest(TestFcntl)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Add ``F_GETPATH`` command to :mod:`fcntl`.
|
|
@ -501,6 +501,9 @@ all_ins(PyObject* m)
|
||||||
#ifdef F_SETOWN
|
#ifdef F_SETOWN
|
||||||
if (PyModule_AddIntMacro(m, F_SETOWN)) return -1;
|
if (PyModule_AddIntMacro(m, F_SETOWN)) return -1;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef F_GETPATH
|
||||||
|
if (PyModule_AddIntMacro(m, F_GETPATH)) return -1;
|
||||||
|
#endif
|
||||||
#ifdef F_GETSIG
|
#ifdef F_GETSIG
|
||||||
if (PyModule_AddIntMacro(m, F_GETSIG)) return -1;
|
if (PyModule_AddIntMacro(m, F_GETSIG)) return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue