[[!template id=project title="Make system(3) and popen(3) use posix_spawn(3) internally" contact=""" [tech-userland](mailto:tech-userland@NetBSD.org) """ mentors=""" [Martin Husemann](mailto:martin@NetBSD.org) """ done_by="Nikita" category="userland" difficulty="easy" description=""" The library functions popen(3) and system(3) are used to create a new shell process and (in case of popen(3) set up IPC channels to the new process). Currently they are implemented using fork(2), execve(2) and do a bit of astonishing complex internal bookkeeping. It should be possible to simplify both implementations using posix_spawn(3) and associated helper functions. """ ]] [[!tag gsoc]]