Перейти к содержанию

close не возвращается


Гость

Рекомендуемые сообщения

Есть следующий кусок кода, который успешно открывает com1:

termios* pTyy;

int devfile;

pTty->c_iflag = 0;

pTty->c_oflag = 0;

pTty->c_cflag = CRTSCTS | CS8 | CLOCAL;

pTty->c_lflag = 0;

pTty->c_cc[VMIN]=1;

pTty->c_cc[VTIME]=0;

cfsetispeed(pTty, B4800);

cfsetospeed(pTty, B4800);

devfile=::open("/dev/ttyS0", O_RDWR | NON_BLOCK, 0);

tcsetattr(devfile, TCSANOW, pTty);

При закрытии com-порта команда

close(devfile) не возвращается (виснет)

В чём тут дело?

Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

Более того, мною был замечен следующий глюк (?):

две машинки, соединины нуль-модемом.

На одной делаю cat /etc/fstab > /dev/ttyS0

На другой cat /dev/ttyS0 ( или hexdump)

Получается.

Но если вместо fstab - termcap (он много больше), то обе машинки виснут, причём на одном и том же месте.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...