Отправка процесса в фоновый режим и возврат управления моей оболочке

Я программирую оболочку для своего класса CS, и часть проекта включает запуск процесса в фоновом режиме, если пользователь передает символ '&'.

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

Должен ли я вызывать tcsetpgrpпосле execvp, если это фоновый процесс? Если да, могу ли я получить pid своей оболочки, просто вызвав getpid?

6
задан Gilles 'SO- stop being evil' 10 October 2012 в 13:42
поделиться