• Авторизация


Вопрос по псевдотелетайпам 05-02-2019 14:55 к комментариям - к полной версии - понравилось!


Пытаюсь использовать pty в Debian, 32-разрядном. Получаю дескриптор, но когда пытаюсь сбросить сигнал RTS, получаю от ioctl -1. Код приведён ниже:

include
include
include ioctl.h>
include
include
include
int main(int argc, char* argv[]) {
int master,slave;

char slname[255];
struct termios termios_p;

termios_p.c_iflag &= ~(INPCK|IXON|IXOFF|ICRNL|INLCR|IGNBRK|BRKINT);
termios_p.c_oflag &= ~OPOST;

termios_p.c_cflag |= (CLOCAL|CREAD);
termios_p.c_cflag &= ~CSIZE;
termios_p.c_cflag |= (CS8);
termios_p.c_cflag &= ~(CSTOPB|PARENB);

termios_p.c_lflag |= IEXTEN;
termios_p.c_lflag &= ~(ISIG|ICANON|ECHO|ECHOE|ECHOK|ECHONL);

termios_p.c_cc[VMIN] = 1;
termios_p.c_cc[VTIME] = 0;
openpty(&master,&slave,slname,&termios_p,NULL);
if (master < 0)
printf("Open error!\n");
else {
int data = TIOCM_RTS;
int err = ioctl(master,TIOCMBIC,&data);
printf("RTS setting result err=%d\n",err);
}
return 0;
}

Что я делаю не так?
UPD. errno содержит EINVAL. Не пойму, вроде всё хорошо
UPD.2. Видимо, команда TIOCMGET/TIOCMBIC/TIOCMSET не работают в данной версии Linux. Вопрос - а как можно изменять состояние линий, например RTS/CTS?

https://ru-programming.livejournal.com/1366312.html

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Вопрос по псевдотелетайпам | lj_ru_programming - Программизм | Лента друзей lj_ru_programming / Полная версия Добавить в друзья Страницы: раньше»