So what should you use?
QNX SDP8.0Getting Started with the QNX OSDeveloperUser
Obviously, if you're porting existing code, you'll want to use whatever it uses. For new code, you should avoid fork() if at all possible.
Here's why:
- Although fork() works with multiple threads, you need to register a pthread_atfork() handler and lock every single mutex before you fork, complicating the design.
- The child of fork() duplicates all open file descriptors. As we'll see in the Resource Manager chapter later, this causes a lot of work—most of which will be unnecessary if the child then immediately does an exec() and closes all the file descriptors anyway.
Your best choice for portability is posix_spawn().
Page updated: