3 ms·
MacOS has posix_spawn. See https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/posix_spawn.2.html https://develop
by Someone 4mo ago
MacOS has posix_spawn. See https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/posix_spawn.2.html https://developer.apple.com/library/archive/documentation/Sy... (yes, that’s an iOS man page. MacOS has the call, too, but I couldn’t find the man page online and it looks identical to me)
I don’t know how they implemented it, though. Under the hood, it could do the equivalent of a fork/exec pair.
- plorkyeran 4mo agoXNU's posix_spawn implementation is not fork/exec-based. It does roughly what the API suggests it would do.
- dcrazy 4mo agoXNU is open source; here’s a link into the middle of the implementation, after it’s copied all the necessary attributes of the parent into the new process structure: https://github.com/apple-oss-distributions/xnu/blob/f6217f891ac0bb64f3d375211650a4c1ff8ca1ea/bsd/kern/kern_exec.c#L4039 https://github.com/apple-oss-distributions/xnu/blob/f6217f89...