Я работаю над проектом, в котором мне нужно сохранить и восстановить настройки псевдотерминала. Я могу использовать tcgetattr для сохранения настроек терминала, даже когда вызывающий процесс находится в фоновом режиме. Однако дело обстоит иначе с функцией tcsetattr для восстановления настроек терминала, когда вызывающий процесс находится в фоновом режиме. Он просто зависает на tcsetattr.
Кто-нибудь знает, почему это происходит, и кто-нибудь может предложить идею, как я могу добиться восстановления настроек терминала для фонового процесса?
РЕДАКТИРОВАТЬ
Обстоятельства: это рабочий процесс примера программы, и я пытаюсь сделать снимок программы и перезапустить его позже:
main function
-- opens a master pty with NOCTTY flag
-- opens a slave pty with NOCTTY flag
fork
parent process
-- close the slave and wait for child process
child process
-- set up slave pty as a new controlling terminal
-- saves controlling term setting i.e.slave
-- run a while loop for 200 seconds (using SIGALARM)
and do some trivial task locally