[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