Сценарий заключается в следующем: процесс (последний родитель) начинается и разбивает ребенка. Ребенок наследует все ручки от родителя, особенно stdin (0), stdout (1) и stderr (2). < /P>
ребенок не отделяется от контроля TTY (по крайней мере, не активно). Родитель общается со своим ребенком через доменную розетку UNIX. Ребенок должен получить пароль, использует TcgetAttr/TcSetAttr, используя TcgetAttr/TCSetAtttr. В качестве альтернативы, если я запускаю тест в ребенке, просто выполняющий чтение (без дополнительного tcgetattr/tcsetattr) в дескрипторе файла 0 (stdin), это уже не удается.
Может ли кто -нибудь объяснить мне фон этого? /proc/self/fd/0 говорит мне, что я использую/dev/pts/0. Также насильно повторно открыть/dev/pts/0 в качестве дескриптора файла 0 с O_RDWR и права доступа 0600 не помогает.
Является ли только родителем читать из Stdin, а не его дети?
Подробнее здесь: https://stackoverflow.com/questions/795 ... ld-process