[d-kernel] о pppd, группах процессов, терминалах, /dev/pts и SIGHUP]
Artem
u2u на nm.ru
Пн Окт 17 20:26:14 MSD 2005
Artem wrote:
> 2.Погуглив, выяснил, что pppd "кладет модем" установкой-сбросом DTR. В
> man termios на этот счет ничего не говорится. Как отследить его
> (приветствуются ссылки на исходники/документацию)? :-)
Вроде нашел HOWTO по программированию терминалов в linux, но почему-то
DTR не получается контролировать или устанавливать. Вот пример кода:
Имеется псевдотерминал. Создается вот так:
pty = getpt();
if (pty < 0 || grantpt(pty) < 0 || unlockpt(pty) < 0) {
ERR("getpt: %s\n", strerror(errno));
return -1;
}
Все отлично, в pty - дескриптор псевдотерминала. Далее пробую определить
состояние DTR (или изменить его):
int status;
if ((ioctl(pty, TIOCMGET, &status)) < 0)
ERR("IOCTL GET ERROR!: %s\n", strerror(errno));
status = TIOCM_DTR;
if ((ioctl(pty, TIOCMBIS, &status)) < 0)
ERR("IOCTL SET ERROR!: %s\n", strerror(errno));
При запуске - runtime errors:
error: IOCTL GET ERROR!: Invalid argument
error: IOCTL SET ERROR!: Invalid argument
В чем тут ошибка?
Rgds, Artem
Подробная информация о списке рассылки devel-kernel