Copy a regular file content or metadata by using high-performance fcopyfile(3) syscall (macOS).
(fsrc, fdst, flags)
| 84 | """ |
| 85 | |
| 86 | def _fastcopy_fcopyfile(fsrc, fdst, flags): |
| 87 | """Copy a regular file content or metadata by using high-performance |
| 88 | fcopyfile(3) syscall (macOS). |
| 89 | """ |
| 90 | try: |
| 91 | infd = fsrc.fileno() |
| 92 | outfd = fdst.fileno() |
| 93 | except Exception as err: |
| 94 | raise _GiveupOnFastCopy(err) # not a regular file |
| 95 | |
| 96 | try: |
| 97 | posix._fcopyfile(infd, outfd, flags) |
| 98 | except OSError as err: |
| 99 | err.filename = fsrc.name |
| 100 | err.filename2 = fdst.name |
| 101 | if err.errno in {errno.EINVAL, errno.ENOTSUP}: |
| 102 | raise _GiveupOnFastCopy(err) |
| 103 | else: |
| 104 | raise err from None |
| 105 | |
| 106 | def _fastcopy_sendfile(fsrc, fdst): |
| 107 | """Copy data from one regular mmap-like fd to another by using |
no test coverage detected