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.

Organization

Student

Nikita Gillmann

Mentors

  • Jörg Sonnenberger
  • Martin Husemann
  • Riastradh
close

2020