Я программирую оболочку для своего класса CS, и часть проекта включает запуск процесса в фоновом режиме, если пользователь передает символ '&'.
Если процесс выполняется на переднем плане, я просто запускаю
процесс, и он остается под управлением терминала, поскольку находится на переднем плане. Однако, если это фоновый процесс, я должен вернуть управление своей основной оболочке после запуска процесса. Я понимаю, что системный вызов tcsetpgrp(pid_t)
помещает процесс, переданный в качестве аргумента, на передний план, но я не совсем понимаю, как его использовать.
Должен ли я вызывать tcsetpgrp
после execvp
, если это фоновый процесс? Если да, могу ли я получить pid своей оболочки, просто вызвав getpid
?