Calling fork() from Swift
October 8, 2018 ยท View on GitHub
// Note: calling fork() can be unsafe and dangerous, that // is why Swift doesn't let you invoke it directy. Be very // careful about how you use fork(). For some more details, // see https://www.evanjones.ca/fork-is-dangerous.html and // http://www.sealiesoftware.com/blog/archive/2017/6/5/Objective-C_and_fork_in_macOS_1013.html
import Darwin
let RTLD_DEFAULT = UnsafeMutableRawPointer(bitPattern: -2) let forkPtr = dlsym(RTLD_DEFAULT, "fork") typealias ForkType = @convention(c) () -> Int32 let fork = unsafeBitCast(forkPtr, to: ForkType.self)
switch fork() { case -1: print("Error") case 0: print("Child") default: print("Parent") }