c - выход из состояния программы, работающей в фоновом режиме
У меня есть задание, в котором я должен создать мини-оболочку, которая способна делать много вещей, включая управление заданиями. Мне удалось создать новые рабочие места, используя fork и execvp. Но я также хочу получить коды выхода из программ, запускаемых execvp. Из того, что я нашел в других постах, я могу сделать это с помощью.if(WIFEXITED(status))
Но мы также должны запускать процесс в фоновом режиме, если пользователь вводит '&' с именем процесса в оболочке. Так что это неИмеет смысл дождаться, пока родительский процесс подождет, пока дочерняя программа завершит работу в фоновом режиме. Могу ли я установить какое-либо прерывание, уведомляющее родительский процесс о завершении дочернего процесса? Тогда я могу использоватьif(WIFEXITED(status))
заявление, чтобы получить код выхода.
пример
sleep 100 &
будет работать в фоновом режиме, в то время как я могу одновременно выполнять другие команды оболочки на переднем плане.