У меня есть приложение, которое печатает на выходы терминала.
Когда переведите его в фоновый режим (с '&'), и нажмите любую клавишу, например, нажмите Enter, чтобы снова отобразить подсказку (просто чтобы убедиться, что я все еще вbash, когда был отображен какой-либо вывод из фонового процесса), фоновый процесс, кажется, останавливается самопроизвольно:
[1] Stopped (tty output) app
Я понял, что это потому, что процесс получает SIGTTIN или SIGTTOU, здесь, вероятно, SIGTTIN и SIGTTOU в случаеprintf и т.д., поэтому у меня есть два вопроса:
1. Я попытался обработать его со стороны приложения, просто заблокируйте SIGTTOU и SIGTTIN, это помогает в этом случае, я могу нажать любую клавишу в оболочке, но когда я выполняю процесс на переднем плане - конечно, все мои нажатия клавиш игнорируются !!!
так, как справиться, чтобы он работал в fg и bg ???
может быть, отсоединить процесс от терминала и tty, но сможет ли приложение все еще печатать на консоль?
2. В общем, кто должен обрабатывать эти сигналы?приложение или, может быть, он должен быть обработан в конфигурации tty.(ТОСТОП?)
заранее спасибо!